13. 代码圣母

进度条卡在百分之七十九,不动了。

哈特盯着屏幕看了整整两分钟,确认那不是视觉疲劳造成的错觉。蓝色的进度条停在原地,服务器机柜的指示灯仍在规律闪烁,但初始化进程像是撞上了一堵看不见的墙。他蹲下来检查硬盘接口——种子硬盘的指示灯还是蓝色,数据读取正常。问题不在硬件。

他掏出手机打给安德鲁。电话响了一声就被接起来,安德鲁的声音急促得像刚从什么东西里钻出来。

“哈特先生,我也看到了。进度条卡住了。不是种子的问题,是管理员账户#2正在从外部登录核心系统。有另一个初始化进程在同时运行,方向跟种子相反。它在回滚你的操作。”

“妮基?”

“不是妮基。#2账户的登录地点不在钟楼。信号来源是一家汽车旅馆的公共网络。地址在城南机场方向。是卢卡斯。他在用另一个管理员账户反向覆盖你的权限。”

哈特站起来,看着屏幕上跳出的新提示。一行红字在进度条下方闪烁:“冲突指令。双管理员同时在线。系统请求创始人账户仲裁。”

创始人账户。阿利托的原始密钥。阿利托把密钥分成了两半,一半给了妮基,另一半藏在自己的颅骨里。现在那一半在技术科的证据袋里,被霍根带往西郊的路上。

他拨通霍根的电话,等了很长时间才听到接听的声音。背景里有发动机噪音和警用对讲机的电流声。

“霍根,你到哪了?”

“还有二十分钟。路上遇到了一点麻烦——有人报假警说工业园北侧发生瓦斯泄漏,消防封锁了两个路口。我在绕路。”

“卢卡斯干的。他在拖延你。”

“我知道。”霍根的声音异常平静,“他也在拖延你。种子初始化卡住了,对吗?”

“对。他用了妮基的管理员账户从外部登录,正在反向覆盖我的操作。种子需要创始人账户仲裁,我需要那半个密码。”

“我进不去数据中心的正门,”霍根说,“保安系统被远程锁死了。有人把所有授权人员的指纹识别都改成了拒绝状态。卢卡斯控制了物理门禁。”

哈特看向机房深处。核心机房的服务器机柜排列成一道没有尽头的走廊,每一台机器都在低鸣,每一盏指示灯都在闪烁。他对OmniTech的系统架构了解不多,但安德鲁在仓库里告诉过他——种子可以在任何一台连接到核心交换机的终端上完成初始化。不一定非要在机房里。只要在同一个网络内,任何一个VidStream Life终端都可以成为接入点。

“安德鲁,”他重新拨通电话,“数据中心外面有多少台VidStream终端?”

“你什么意思?”

“物理门禁被锁死了,我没法出去,霍根没法进来。但我现在站在整个艾斯特林市最大的一台VidStream服务器旁边。种子硬盘不需要非得插在机房的冗余接口——它只要连上核心交换机就行。我在核心交换机旁边,我有硬盘。但如果我没有密码——”

“你需要一个已经接入核心网络的VidStream终端来接收密码。”安德鲁接上了他的思路,“霍根手里的密码可以通过任何一台联网的VidStream设备传输给你。但你必须手动输入,不能远程复制。”

“找一个数据中心的终端。快。”

安德鲁的手指在键盘上飞快敲击。过了大约三分钟,他的声音重新出现:“找到了。数据中心南侧消防通道门口有一台智能门禁终端,型号是VidStream Life三代。它连接了核心网络,用于保安巡逻打卡。终端编号是DC-47。如果你能到那台终端前面,霍根把密码发到终端上,你手动输入进种子硬盘——就可以完成仲裁。”

哈特站起来,走到机房门禁前。莱斯利·程在他进来之后锁了门,门禁识别器上亮着红灯。他试了一下紧急开启按钮,没反应——物理门禁被卢卡斯远程锁死了,跟霍根说的一模一样。

“安德鲁,核心机房的门禁被锁死了。我需要另一条路。”

安德鲁沉默了几秒。哈特能听到他那边翻找什么的声音,然后是纸张被撕开的脆响。“数据中心有一套老式通风管道系统,是建筑改造前留下来的。机房天花板上有入口,用螺丝刀可以撬开。管道通向走廊,但你要爬大概四十米。管道内部有温感报警器,如果温度突然升高会触发喷淋。你身体的热量不会触发,但如果你碰坏了任何线路——”

“我会被喷一身水,然后安全系统自动报警。”

“报警不是最糟的。最糟的是水可能损坏你口袋里的种子硬盘。”

哈特低头看了看外套内袋里那块裹着防静电袋的硬盘。他把硬盘掏出来,用防静电袋裹了两层,然后从杂物柜里翻出一个电工用的防水胶带,把硬盘整个缠成了一个密封的小包。他把它塞进胸口内侧的口袋里,拉上拉链,然后抬头看了看天花板。

通风口的栅格距离地面大约两米五。他搬来机房角落里的一个铁制脚踏梯,用螺丝刀撬开栅格四角的螺丝。栅格掉下来的时候他伸手接住了,没让它砸在地上。

管道内部铺着一层薄薄的灰尘,空气又干又冷,带着金属和旧隔热棉的气味。哈特把袖口扎紧,双手撑住管道内壁往上攀。管道比他想象的窄,肩膀几乎擦着两侧的金属壁。每往前挪动一下,管壁就发出一声闷响,像是整栋建筑在轻轻叹气。

他爬了大约十米的时候,听到了一个不该出现的声音——管道深处传来轻微的嗡嗡声,不是机房的低频嗡鸣,是更尖锐、更靠近的电子蜂鸣。一台小型无人机正在管道里巡航。

卢卡斯知道他进入了管道。

哈特停下来,把身体尽量贴紧管壁。无人机的探照灯在管道前方扫过,光线擦着他的鞋尖掠过,然后转向了另一条岔路。他等蜂鸣声完全消失之后才继续往前爬。

四十米。正常走路大约十五秒。在管道里,他爬了将近十分钟。

消防通道门口的那台智能门禁终端就挂在墙上,屏幕亮着暗绿色的待机界面。哈特从管道里跳下来,落地的时候膝盖撞到水泥地面,发出一声钝响。他站起来,走到终端前面。

屏幕上显示着VidStream Life三代的标准界面。底部有一行小字:“本终端连接核心网络。未经授权的操作将被记录。”

他拨通霍根的电话。“到了。DC-47终端。把密码发到这台设备上。”

“收到。密码发送中。”

三秒后,终端屏幕上弹出一条信息:“收到外部数据传输。发送者:艾斯特林警局技术科。数据包类型:加密文本。内容长度:16字符。”

哈特按下接收键。十六位密码逐行显示在屏幕上——每一个字符都是阿利托藏在自己骨头里的最后一道防线。他从胸口掏出那个被防水胶带缠得密不透风的小包,拆开,露出种子硬盘的银色外壳。硬盘上有一个USB-C接口和一个物理键盘输入孔——阿利托设计它的时候就考虑到了无网络环境下的手动输入。

他把十六位密码逐一输进去。每输入一个字符,硬盘上的指示灯就闪一次。最后一个字符输完,指示灯变成了他没见过的一种颜色——白色。

屏幕上的进度条重新开始移动。百分之八十。百分之八十一。百分之八十二。

手机响了。是安德鲁。

“哈特先生,种子开始覆盖索引了。但卢卡斯的反向覆盖也在加速。系统现在处于双管理员冲突状态。你知道这意味着什么吗?”

“什么?”

“种子和反向覆盖不能同时运行。如果冲突持续下去,索引会自动触发一个保护机制——它会锁死所有待发信件,取消午夜的全部发送计划。十七封信一封都寄不出去。妮基的计划会失败,卢卡斯也得不到他想要的控制权。所有人都输了。”

进度条走到百分之八十六。速度明显比之前慢了,每前进百分之一都要卡顿几秒。屏幕上的红字提示仍在闪烁:“冲突指令。双管理员同时在线。系统请求创始人账户仲裁。”

仲裁。但阿利托已经死了。他的密钥分成了两半,一半在妮基手里,一半刚刚被哈特输进了种子硬盘。两半都在系统里,但系统不承认其中任何一半是完整的创始人权限。它要求两半同时出现。

“两半密钥需要同时在场,”哈特说,“妮基的密钥和霍根手里的密码必须在同一个终端上输入。”

“对。但妮基不在这里。她的密钥是软件层面的,可以通过远程登录输入。但你需要她主动登录#2账户,输入她那一半密钥,跟你手里的那一半同时提交仲裁。”

哈特掏出那部老式翻盖手机。屏幕上还是那个唯一的联系人——L.H.。他按下拨号键,听筒里传来拨号音。一声。两声。三声。四声。

第五声被切断了。不是被挂断——是信号被干扰了。卢卡斯在屏蔽他的通讯。

他改用智能机打给安德鲁。“卢卡斯在干扰我的信号。你有办法联系到妮基吗?”

“我没有她的号码。但我知道她在监控索引的发送队列。如果你能在系统里留一条消息,写在待发信件的备注栏里,她能看到。”

“怎么留?”

“种子硬盘在核心交换机旁边,你可以用它的临时管理权限打开待发信件列表。找一封你自己的信——第二十号。在备注栏里写你想说的话。妮基如果还在监控发送队列,她会刷新日志看到。”

哈特重新进入机房——这一次走的是消防通道,门禁被种子硬盘的临时权限打开了。他走到核心交换机旁边,把种子硬盘重新插进冗余接口,打开待发信件列表。屏幕上的列表显示着二十封待发信件,第一到第十七封是妮基设置的定时信,第十八到第二十封是系统预留的空白模板。他自己的那封——第二十号——收件人是“莱恩·哈特”,状态栏写着“待发送”。

他打开备注栏,敲了一行字:

“妮基:两半密钥需要同时输入。用#2账户登录,在终端DC-47上输入你的那半。这是最后一次机会。如果你看到,别打给我——直接在系统日志里回复。L.H.”

他把信息保存,然后坐下来等。机房里的冷气吹得他的后颈发凉,服务器机柜的嗡鸣声像是某种持续的低音弦乐。屏幕上的进度条还卡在百分之八十六,红字提示仍在闪烁。每一秒都在消耗午夜的倒计时。

五分钟后,一条新的日志出现在发送队列的底部:

“日志回复:#2账户将于23:45登录DC-47终端。提前十秒发送确认信号。不要回拨。——L.N.”

二十三点四十五分。距离午夜还有十五分钟。

哈特站起来,重新走向消防通道门口的DC-47终端。他把种子硬盘接上终端,调出仲裁界面。屏幕上显示着两个输入框:“创始人密钥A——已就绪。创始人密钥B——等待输入。”

他把霍根发来的密码输入密钥A的位置。确认。然后他看着时间跳到二十三点四十四分五十秒。

十。九。八。七。

终端屏幕闪了一下。第二个输入框里自动填入了一行字符——不是手打的,是远程复制过来的。字符长度同样为十六位,格式跟阿利托的头骨密码完全一致。

六。五。四。

两个输入框同时变绿。屏幕弹出一行字:

“创始人双密钥验证通过。种子初始化恢复。索引后门将在午夜零时永久关闭。不可撤销。确认?”

三。二。一。

哈特按下确认键。进度条从百分之八十六猛地跳到百分之九十八,然后百分之九十九,然后百分之百。

屏幕上的所有红字消失,只剩下一条蓝色提示:

“种子已植入。索引纯净版已覆盖所有后门。待发信件十七封,将以原版内容于午夜零时准时发送。不可撤销。”

他松开握着终端边缘的手指,指节已经因为用力太久而发白。他把种子硬盘拔下来,装回口袋,然后沿着消防通道走出数据中心。

夜空很晴。工业园的灰色建筑群在月光下像一排静默的墓碑。远处,枫树街方向亮着暖黄色的灯光,整条街安静得像什么都没发生过。

手机响了。不是翻盖机,是智能机。屏幕上是一个他没存过的号码,但他认得这个号码——格兰特酒店后巷的通话记录里有它。他接起来。

“哈特先生。”

妮基的声音。背景里有风声,有偶尔驶过的车辆声,有某种空旷空间特有的回响。她不在钟楼。

“你在哪?”

“一个你能看到的地方。”她说,“抬头。”

哈特抬头。工业园北侧,距离数据中心大约三百米的位置,有一座废弃的微波通讯塔,塔身漆成红白相间的颜色,在月光下像一根剥了皮的柱子。塔顶的信号平台上站着一个人影,很小,但能看出粉红色头发的反光。

“你为什么要上去?”

“因为从这里可以看到全城。”

“妮基——”

“还有三分钟。”她说,“三分钟后,十七封信会同时到达。你该去枫树街了。”

“你呢?”

她没有回答。电话那头只剩下风声。然后风声停了。通话还在继续,但她把手机放在了某个地方,让他听着头顶空旷的夜晚。哈特没有挂电话,他把手机握在手里,坐进车里,发动引擎,朝枫树街的方向驶去。后视镜里,微波通讯塔上那个小小的身影站在月光下,粉红色的头发被风吹起来,像一面不会发出声音的旗。

本章评论(0)

暂无评论,来抢沙发吧!

我来评论

您的邮箱地址不会被公开。 必填项已用 * 标注