第20章 · 断链的时刻

第一辆突击车停在大楼南侧入口的时候,据点里的灯同时熄灭了。

不是被动断电——是法尔汉在离开之前设置的最后一道自动防御:当外围震动传感器检测到超过阈值的重型车辆接近时,主电源自动切断,备用照明切换至不可见光谱。地下三层在零点三秒之内从一个人造白昼沉入了一种介于黑暗和深灰色之间的、没有方向感的空间。

陆远站在距离女儿不到两米的地方。他没有动。他的眼睛需要大约二十秒才能适应这种光线,但大脑中没有那种时间——他直接蹲下来,凭记忆伸手摸到了折叠床的边缘,然后是毯子的边缘,然后是女儿的肩膀。她还在睡。呼吸平稳。

他轻轻把手按在她背上,确认她的心跳频率正常。然后他站起来,转向通道入口的方向。

入口的铁门已经半开。法尔汉背着一个黑色的防震箱站在阴影里。他的身体挡住了通道里透出来的唯一一丝微光,让他在昏暗的据点中呈现为一个轮廓分明的人形剪影。他的声音很低,但在地下三层这种极端安静的声学环境中,每一个字都像敲在鼓面上:

“他们从三个方向同时进入。南侧入口——四辆车。东侧巷道——两辆。沿街正面——至少十二人步行接近。确认的武装人员数量在二十五到三十之间。我们没有时间了。”

他说这些话的时候,语气和他在报告调试结果时一模一样。陆远已经学会了辨认法尔汉在极端压力下的信号特征——他的声音会变得更加平稳,语速会变得更加均匀,所有的情绪都会被压缩到声带以下,只留数据和逻辑在表层流动。

“沈姐带子衿走货梯通道,”陆远说,“那个出口没有覆盖到她的信号特征——她不是数据党的成员,目标档案里没有她的射频指纹。你和我走地下通道,吸引他们的注意。”

法尔汉没有任何犹豫,也没有任何确认。他只是转过身,用一只手推开通道入口的铁门,然后消失在门后。

陆远没有立刻跟上去。他蹲在折叠床边,在黑暗中找到了女儿的小腿——隔着毯子,他能感觉到她身体的温度。他从口袋里掏出一个东西,放在她枕头旁边。那是他从拉各斯带回的那只木雕大象——乌木的,象鼻子向上扬起,线条淳朴。他没有说话。在黑暗中,他低下头,把额头贴在女儿握着毯子边缘的手背上,停留了大约两秒钟。然后他站起来,转身走向通道入口。

他在门口停了一下,回头看了一眼。女儿的身影在黑暗中已经被完全吞没了,他看不到她。但沈姐的声音从那个方向传来,像一根信号微弱但稳定的线:“我会照顾好她。”

陆远没有回答。他侧身挤进了地下通道的半开铁门,让它在自己身后无声地合拢。


通道里没有灯。

法尔汉走在前面大约五步的距离,黑色防震箱的轮廓在伸手不见五指的黑暗中像一块更黑的斑块在移动。陆远跟在他后面,左手指尖擦着通道墙壁的粗糙表面行走——这是他在废弃数据中心的施工图上看过这条通道之后记住的一个细节:墙壁每隔三米有一道垂直的伸缩缝,可以通过数缝合计数来估算自己走了多远。二十米。三十五米。五十米。按照施工图,通道的长度是七十三米,尽头是一个废弃的泵房,泵房有一扇通向地面排水渠的铁栅栏门。

六十八米的时候,法尔汉停住了。

陆远也停住了。在绝对的黑暗中,任何非预期的动作变化都是一种信号。法尔汉没有说话,但陆远听到了一种极其细微的、从通道前方传来的声音——不是脚步声,不是人声,是一种机械装置解锁时的振动。像一把钥匙插进锁芯,正在转动。

不是从通道尽头传来的。是从通道墙壁的另一侧传来的。

突击队已经进入了建筑的地下层。他们与法尔汉和陆远之间,只隔了大约四十厘米厚的混凝土墙。

法尔汉重新开始移动——速度比刚才更快,但步幅更短,噪音更小。他不再抚摸墙壁来导航——他已经把这条通道的每一条接缝都记在了他的空间记忆里,黑暗中行走对他来说和对光下的区别不大。

七十三米。

通道尽头。

泵房的铁栅栏门就在前方——从通道口的缝隙里透进来一丝极其微弱的光线,来自地面排水渠上方的城市路灯,经过雨水篦子的过滤之后,变成了一束被切割成细密条纹的灰色光带,洒在泵房积了灰的水泥地面上。

法尔汉的手指碰到铁栅栏门的锁扣。他没有立刻打开。他侧过头,耳朵贴近门缝,听了三秒钟。

外面没有异常声音。

他拧开锁扣,推开了铁栅栏门。铰链已经很久没有上油了,发出一声短促的、像动物低鸣一样的金属摩擦声,在狭窄的泵房里显得格外刺耳。

但没有人回应那声音。

陆远跟着法尔汉钻出铁栅栏门,进入了排水渠。渠底是干的——只有一层浅浅的淤泥和落叶,踩上去软绵绵的,几乎没有声响。两侧的墙壁上覆盖着深绿色的苔藓,空气里弥漫着泥土、废水和腐败有机物混合的气味。头顶的雨水篦子间距大约十米,每一个篦子下面都漏下一束灰白色的路灯光线,在黑暗的渠道中形成一串等距的光斑,像一条由光线组成的铁轨,延伸向视线尽头的拐弯处。

他们沿着排水渠走了大约五十米。法尔汉在第二个拐弯处停住了,从一个雨水篦子下方仰头向上看了一段大约十秒钟,然后退回来。他的声音在排水渠的墙壁之间产生了一个微弱的回声:

“篦子上方是一条小巷。没有监测信号——他们在巷口部署了两台移动基站,但巷子中间有大约七米的覆盖盲区。我们可以从那里上到地面,然后——”

他没有说完。

头顶的雨水篦子发出一声剧烈的金属撞击声——像一块沉重的铁板被人踩了一脚。然后是一个模糊的人声,压得很低,但距离太近了,隔着篦子的缝隙传下来的时候仍然清晰可辨:

“——地下三层已经空了。他们跑了。泵房方向的铁栅栏门是开的——”

法尔汉不再说话。他直接抓住排水渠墙壁上的一根锈蚀的铁管,开始向上攀爬。铁管在他体重的压迫下发出令人不安的吱嘎声,但没有断裂。他的脚在湿滑的苔藓上找了两下,找到了一个受力点。陆远跟在他下面,用手托着防震箱的底部帮他保持平衡。

法尔汉的头顶到了雨水篦子的底面。他没有直接推开——他先侧耳听了一下上面的声音。巷子里没有脚步声,没有人声。刚才那个声音是从更远的篦子位置传来的——他们没有发现这个出口。

他用力向上推。

雨水篦子在城市里被焊死是常态。没有被焊死——被锈住。法尔汉的第一下推击没有让它移动分毫。锈蚀的铁框和铸铁篦子之间的摩擦力经过多年的积累,已经大到需要一种比人力更大的扭矩才能打破。

法尔汉没有做第二次尝试。他直接把手伸进口袋,拿出一个烟盒大小的装置——是一台低频振动器,他用它贴在了篦子的边沿,按下开关。装置发出一声类似牙齿咬碎硬糖的嗡嗡声,持续了大约两秒钟。铁锈的颗粒从篦子边缘簌簌落下。

然后他再次向上推。

雨水篦子发出一声沙哑的、像被从沉睡中强行拉起来的金属尖啸,向上翻起了一角。法尔汉从那个缝隙中侧身挤了出去,然后趴在巷道的路面上,伸出援手,把陆远拉了上来。

他们站在一条宽不到两米的窄巷里。两侧的墙壁是居民楼的山墙,一面灰色一面白色,墙面上密布着空调外机和锈蚀的管道。巷道的两端都被街灯的光照亮,唯独中间这一段落在两盏路灯之间的盲区内——法尔汉判断对了。覆盖盲区确实存在。

巷口方向传来一阵急促的脚步声——不是朝他们来的,但仍然很近。法尔汉把防震箱夹在腋下,贴着墙壁向北移动,脚步快但不跑——在夜晚的城市里,跑步的人会引起注意,但快步行走的人不会。

陆远跟在他身后,走出那条窄巷,拐进了一条沿街的骑行道。

街道上几乎没有人。凌晨的深圳,除了偶尔经过的夜间货运三轮车和扫街的环卫工人之外,整座城市都在沉默中呼吸。路灯把行道树的影子投在人行道上,像一幅用墨水画在不平整纸张上的素描。

他们走了大约两个街区。法尔汉在一个公交站台的广告牌后面停下来,蹲下身,打开防震箱,从里面取出一部已经预先配置好的加密终端。他按下了电源键。

屏幕亮起。一行绿色的字出现在纯黑的背景上。

「鸽子网络 · 前哨节点 7 · 链路状态:正常 · 等待输入」

法尔汉的手指在键盘上敲了一行指令——不是启动注入程序的指令,是一组坐标。新的工作地点。然后他关上了防震箱,站起来,转向陆远。

他的表情在路灯的照射下,呈现出一种陆远从未在他脸上见过的混合——疲惫的巅峰和某种被重新点燃的东西在同一张脸上共存,像一个已经烧了太久快要熄灭的炉子,被人倒进了一桶新的燃料。

“你女儿——沈姐带她去安全点了。鸽子网络的线路确认过了。她们已经到了。”

陆远站在公交站台的边缘。一阵夜风从街道尽头吹来,带着南方沿海城市特有的潮湿和微咸的气息,吹过他暴露在空气中的皮肤。他感到自己的手在发抖——不是恐惧,是一种身体在意识到安全之后,终于开始释放之前积累的全部紧张。

他没有说谢谢。他知道法尔汉不需要。

“米兰,”陆远说,“他做了什么?”

法尔汉没有立刻回答。他低头看了看那台防震箱。然后在路灯下,他说了一句话——声音很轻,但每一个字都像被精确测量过重量之后才放出来的:

“我不知道。但塞拉斯的突击队在我们进入排水渠之前三分钟收到了撤离指令。”

陆远看着他。

“什么?”

“撤离指令。从指挥链路顶层发出的——权限码等级A0,仅次于CEO本身的紧急授权码。命令内容:‘目标已转移。A级误报。撤回。’塞拉斯试图抗命——但A0码在星链的战术执行协议中是不可反驳的。任何收到A0指令的现场指挥官若不执行,其指挥权会在十五秒内被自动转交给最近的其他授权节点。”

法尔汉停了一下,像在确认一个他自己都不太确定的判断。

“米兰用了那个码,”他说,“那个码只有他和CEO知道。CEO目前在新加坡参加一个不能中断的闭门会议——不可能在凌晨四点下发战术指令。所以只能是米兰。”

陆远站在路灯下,把法尔汉的话在脑子里过了一遍。他发现自己的分析能力正在缓慢地恢复——从刚才在排水渠里那种纯粹的本能求生模式,切换回正常的逻辑处理模式。

米兰发出了A0指令。米兰撤销了塞拉斯的突击行动。米兰用一个不可反驳的权限码,在最后一分钟阻止了那场包围。

但米兰没有告诉任何人。

没有通知数据党。没有通知陆远。没有给他自己留下任何可以解释的余地——他直接用最高权限修改了一个正在执行中的A1级截获行动,这在星链的内部审计系统中会留下一条永不删除的记录。任何人在任何时候回溯这条记录,都会看到米兰·沃伊诺维奇在凌晨四点零三分,用自己的权限码撤销了自己四小时前签署的授权令。

他是一个既签署逮捕令又签署释放令的人。

陆远闭上眼。在他合拢的眼睑后面,他看到的不是黑暗——他看到的是米兰坐在贝尔格莱德那间办公室里的样子。也许米兰在那一刻终于想明白了:他不是在星链和数据党之间做选择,他是在保护系统本身和让一个五岁的孩子不被他的系统伤害之间做选择。

他选择了那个孩子。

这可能不是因为那个孩子是陆远的女儿。可能是因为——那个孩子和米娅小时候一样大。

“他不知道我女儿现在在哪里。”陆远说,“他撤军的时候——他连她是否安全都不知道。他只是在她可能还在那栋楼里的时候,做了阻止那个行动的决定。”

法尔汉没有说话。但他微微点了一下头。在这个凌晨的城市街头,两个刚刚从包围中逃出来的人站在一盏路灯下,用一种他们都没想到的沉默,确认了一个他们都没有预料到的结论:

米兰·沃伊诺维奇切断了那条链。


塞拉斯拨通米兰的电话时,贝尔格莱德的时间是晚上九点四十七分。

米兰接起电话,没有说话。他把听筒放在耳边,靠在椅背上,听着线路那端传来的、塞拉斯压抑到几乎要断裂的呼吸声。

“你知道你做了什么吗?”塞拉斯的声音很低。低到米兰差点听不出那是愤怒——更像是某种被冻到极点的东西发出的声音。

“我知道。”

“你知道你四小时前签署了那个授权令,四小时后又撤销了它——你在星链的内部审计系统里留下了一条什么记录吗?你等于在告诉所有人,你签署了一个A1级行动,然后在执行前最后一刻用一个A0密码推翻了你自己的命令。没有理由。没有补充说明。没有错误报告。一个首席架构师在同一个晚上既签发又撤销同一道命令——这在安全委员会看来只有两种可能:你要么被人控制了,要么你在保护那些目标。”

塞拉斯停了下来,等米兰否认。但米兰什么也没有说。

“你在保护他们。”塞拉斯的声音里出现了一道极其细小的裂缝,像冰面上第一个裂纹出现之前发出的那种声音,“你在保护那个中国人和他的孩子。别以为我不知道为什么——你女儿——”

“塞拉斯。”

米兰的声音从彼端传来,没有升高音量,没有加快语速,但塞拉斯还是住了口。

“你如果再提一句我女儿,”米兰说,声音平静得像一块在河底放了很久的石头,水流已经把它所有的棱角都磨平了,“我会向CEO提交你那套全球数据黑市的完整审计日志——包括你在新加坡、曼谷和利马建立的三条未经授权的token转售通道,你在香港注册的七家空壳公司的转账记录,以及你通过星链安全中心的监控后门获取的、用于敲诈东南亚政商界人士的私密通信档案。我都保存了。全部。时间跨度从你入职的第一年到现在。”

电话那头陷入了死寂。

米兰没有给他回应的机会。他继续说下去,声调不变:“你一直以为你的那些操作没有被记录,因为你有最高权限可以清除审计日志。但你忘了——入口-7协议不止一个审计输出端口。还有一个,你没有权限看到。”

他停顿了一下。

“我设计的系统,塞拉斯。你以为我是为了监控普通用户设计的吗?”

塞拉斯的呼吸声在电话线的那一端变得不均匀了。那不是恐惧——是一个人在看到自己的整个底牌被翻开之后,身体产生的本能反应。

“你不可能——”

“2053年6月,曼谷。你通过一个钻-认证的终端访问了一条不存在的QKD信道——那条信道的元数据记录不在标准审计系统中,但它在入口-7的嵌套入口缓存中留了一个副本。不是内容——是连接的事实。时间,地点,终端ID。七条记录。全部在我的私人目录里。”

塞拉斯没有回答。他无法回答,因为米兰说的每一个细节都是真的。他以为自己在这个系统中的活动是完全不可追踪的——因为他拥有亚太安全中心的最高权限,因为他可以在每一次操作之后清除审计日志,因为他确保了自己在系统中的每一步都不会留下可以被常规审查发现的痕迹。

但米兰在他拥有这些权限之前就已经设计了那个系统。

米兰不是在他的操作之后才开始追踪他的。米兰在六年前设计入口-7协议的时候,就已经把追踪塞拉斯这种人的接口嵌入了系统的底层架构中。就像一个设计师在建房子的时候,在墙壁里预埋了一条只有他自己知道走向的管道——不是为了自己用,是为了在某一天需要把房子里某个人的罪行从墙壁里抽出来。

“所以那封授权令——”塞拉斯说。

“是一个测试。”

“测试什么?”

米兰没有回答。但他没有挂断电话。他让塞拉斯在线路那端等待了大约五秒钟,然后说了最后一句话:“测试你会不会对一个五岁的孩子下手。”

他把电话轻轻地放回了座机上。听筒与底座接触时发出的一声清脆的咔嗒声,在安静的办公室里像是一个被落定的句号。

窗外,萨瓦河的对岸亮着稀疏的灯火。米兰在椅子上坐了一会儿,然后拿起手机——他看到了陆远发来的那条关于木雕大象的消息,已经过去几个小时了。他没有回复。但他也没有关闭那条消息。

他把它留在了屏幕上。


深圳,凌晨四点半。

陆远没有回据点。据点已经被封锁了,虽然突击队已经撤离,但塞拉斯的人可能在周围留下了长期监控设备。

法尔汉用加密终端联系了鸽子网络在深圳的最后一个备用节点——一个位于宝安区城中村的单元房,属于一个从未在任何数据党名单上出现过的人。接收地址是一条短信,内容只有三个字:「老地方。」

那间单元房在一栋没有电梯的旧楼的五楼。防盗门的漆面已经起泡剥落,门框上有几道用钥匙划出来的、深浅不一的痕迹。陆远敲了三下门——法尔汉说的暗号,三下,间隔由短到长。

门开了。站在门口的是一个看起来不到三十岁的男人,穿着一件洗到领口发白的T恤,头发有些乱,鼻梁上架着一副度数不低的眼镜。他看了一眼陆远,又看了一眼法尔汉,侧身让开了门口。

“进来吧。路由器密码在冰箱门上贴着。床单上周换的。”

他没有问任何问题。他没有问他们是谁,为什么来这里,什么时候会走。

陆远走进那间单元房。房间不大——大约四十平方米,陈设简单到近乎朴素:一张床,一张书桌,一把椅子,一个简易衣柜。书桌上放着一台台式电脑,屏幕亮着,显示着一条命令行终端,光标在屏幕底部安静地闪烁。窗帘拉得严严实实。

陆远在那张书桌前面坐了下来。他打开法尔汉递给他的加密终端,连接到冰箱门上贴着的WiFi密码,然后打开了鸽子网络的命令行界面。

屏幕上出现了一条新的消息。来自拉各斯节点的加密通道,发送时间显示为大约十分钟前。发件人是阿米娜。

消息很短:

「第一组存储卡已通过塔曼拉塞特检查点。比预订时间提前四小时。灰鸽没有停过车。——阿米娜」

陆远盯着那条消息看了一会儿。

然后他做了一件法尔汉没有预料到的事。他转过身,在书桌旁边的床沿上躺了下来——不是躺下睡觉,是仰面躺着,看着天花板上那盏没有开的吸顶灯,一动不动地躺了大约半分钟。

然后他闭上了眼睛。

“我睡二十分钟。”他说,“之后你叫醒我。剩下的编译工作我来接着做——你还欠我四到五个小时的时间压缩。”

法尔汉没有制止他。他只是坐在那把唯一的椅子上,把防震箱放在膝盖上,打开盖子,开始检查里面的硬盘是否在刚才的逃亡途中受到了物理损伤。他的动作安静而精确,像一台已经校准好的机器在做例行检查。

在窗外,深圳的天空正在从最暗的深蓝色过渡到一种介于灰色和浅蓝之间的颜色——不是黎明,是黎明到来之前那一段最安静的时间。路灯还在亮着,但光线已经开始变得不那么重要了。早起的清洁工正在楼下的街道上打扫,扫帚刷过柏油路面的声音透过墙壁传来,沙沙的,持续不断的,像某种被时间拉长了的呼吸。

那间单元房的窗户正对着一条窄巷的尽头。巷口有一盏路灯,此刻还在亮着。在路灯的不远处,有一根电杆,上面贴着一张已经被风雨撕掉了大半的免费星链服务海报。海报上那位笑容灿烂的白领女性已经被雨淋褪了色,只剩下一只手还指着画面右上角的方向——指向一个陆远看不到的位置。

陆远闭着眼睛躺在床上。他不知道自己是否真的能睡着。但他知道自己需要在这二十分钟里,让身体和大脑停下来——哪怕只是表面上的停止。像一个高速运转中的硬盘,在写入下一个扇区之前,让磁头回到起始位置。

城市在窗外缓慢地苏醒。在遥远的地方——塔克拉玛干沙漠的边缘,或者说撒哈拉沙漠的公路上,或者说贝尔格莱德一间仍然亮着灯的办公室里——别的人们正在继续各自的旅程。线还在延伸,有人正在把断开的接口重新焊接到一起。

陆远不知道那些事情。他只知道自己的女儿还活着。米兰没有按下那个按钮。他还有三十多个小时。

在意识逐渐模糊的边缘,他似乎看到了那只木雕大象——它正静静地躺在女儿枕边,象鼻子向上扬起,在黑暗中保持着那个沉默而确定的姿势。

像一个不会改变方向的坐标。

微信公众号二维码

扫码关注微信公众号
阅读更多独家内容