米兰达花了整整三天时间,从维克拉姆硬盘的残骸中找回了不到百分之三的数据。
“电磁脉冲烧毁的芯片就像被闪电劈过的沙滩,”她在水塔实验室里对阿迪亚说,手指在键盘上敲击的节奏比平时慢了一倍,“硅晶格在微观层面被重新排列了,大部分数据已经物理性地消失了。但维克拉姆——不管他活着的时候是个什么样的人——在数据安全这件事上比你想象的要精明。”
她把一块外接硬盘接到工作站上,打开一个加密文件夹。里面是一堆碎片化的文本,每一段都被截断、加密、然后分散存储在硬盘的不同扇区里,像把一封信撕成碎片之后又把每片藏在不同的书里。
“他不是信任‘秩序’。他在给自己留后路。把这些碎片拼接起来之后,我得到了一个加密笔记系统。维克拉姆用它记录了三年间他和‘秩序’之间的每一次通信。每一个任务指令,每一次现场反馈,每一笔付款记录——他全都存着。”
“付款记录?”
“对。‘秩序’付他钱。不是很多,但足够他在被解雇后维持基本生活。比特币转账,通过混币器清洗过,完全匿名。但付款的时间点和维克拉姆现场操作的时间点——精确对应。”
米兰达调出一页重建好的笔记。日期显示为两年前的一月份,标题只有一个词——“任务”。
“‘秩序’给维克拉姆的第一个任务不是破坏。是监控。他在神庙东区配电室安装了第一台远程数据采集器,用来实时监控电网负载变化。维克拉姆在笔记里写道:‘不知道他要这些数据做什么,但他付钱很准时。这些负载数据在公开渠道里都能查到,他为什么不直接用公开数据?’”
“因为公开数据的精度不够。”阿迪亚说,“公开的电网负载统计是小时级的,做不了精准预测。要制造那十三秒指令级别的攻击,他需要秒级甚至毫秒级的实时数据。他需要知道每一个断路器在什么时间点承受了多少电流,需要知道朝圣季的人群聚集和电网负载之间的精确关系。他在建模。”
米兰达继续往下翻。笔记的时间跨度从两年前一直延续到三个月前,从简单的数据监控升级为更复杂的现场操作——更换老化继电器、调整电压互感器的校准值、重新配置配电柜的通讯模块。每一项操作单独拿出来看都是标准的维护工作,但把它们组合在一起,米兰达看出了端倪。
“他在给整座神庙的配电系统做重构。不是破坏,是优化。你看这几条——二零二三年六月,更换三号变压器的分接头切换逻辑,将自动切换响应时间缩短了零点四秒。二零二三年九月,升级了北区配电室的控制总线固件,提高了数据传输速率。每一条都是为了提升系统效率。”
“但提升效率的同时,也在为攻击铺路。”
“对。”米兰达放大屏幕上的另一段笔记,日期是事发前两周,“你看这条。维克拉姆最后一次现场操作——他在神庙北侧配电室安装了一个‘协议转换器’。这不是优化,这是遥控。这个设备让‘秩序’从任何一台联网终端上都能直接向北侧配电室发送指令——跳过调度中心的验证系统,直接对硬件发号施令。”
阿迪亚盯着屏幕上的记录,想起维克拉姆速记本上被划掉的那行字——“指令已发出,亲眼见证。”在那句话被写下之后,有人用更深的笔迹写了“无用”。维克拉姆花了三年时间把神庙的配电系统从一台普通机器改造为一件遥控武器,然后在他以为自己终于看到了成果的那一刻,被一把从看不见的方向打来的电磁脉冲烧毁了硬盘、抹去了证据、然后死于一场伪装成意外的煤气泄漏。
但阿迪亚发现了一处不寻常的地方。笔记里有一段加密等级比其他内容高得多——用了另一种算法,密钥长度多了一倍,如果不是米兰达发现硬盘某个隐藏分区里单独存了密钥文件,这段文字可能永远不会被破译。
破译后的内容不是任务记录。也不是技术笔记。
是日记。
阿迪亚屏住呼吸,一段段读下去。
“今天去配电室的时候路过圣池,一群小孩子在排队等免费食物。最小那个大概四五岁,穿着一件大得不像话的白衬衫,袖子卷了好几层。她冲我笑了一下。我做的是什么?我把那么小一个孩子可能喝的水、可能照的光,接进了他的控制范围。他知道这个配电柜控制着整个北侧的供电吗?当然知道。他每次‘优化’都会画新图纸给我,比基金会工程师画得还好。但我不是给自己留后路才写这些的——他已经三个月没给我发新任务了,我现在觉得自己和死人差不多。”
“昨天梦到了妈妈。醒了之后一直坐到了天亮。我想回老家,但查了一下银行余额,连一张长途汽车票都买不起。所有的比特币都花在了买那个该死的电磁防护箱上——花得真对,现在他没叫我,我连出门的力气都没有了。”
阿迪亚把这两段文字翻来覆去读了三遍。维克拉姆不是恶魔,他只是一个被困住的普通人。但他从未拒绝过任何一个任务。道德困境在他的文字里出现又消失,像一个在深水里浮上来又沉下去的软木塞——它浮过,你看见了,但它最终沉了下去。
“你知道吗,”米兰达关掉显示器,屏幕的蓝光在她脸上退潮,“这些日记只记了大概三个月。之后的一年半里,这个日记系统再也没有出现过新内容。维克拉姆不再试图说服自己了。他把自己的愧疚感重新封装成了一个更安全的东西——英雄叙事。在较晚期的笔记里,他开始用‘改革’来指代他的破坏,用‘过滤’来描述他对事故责任的清理。他不再写‘我做的是什么’,他开始写‘必须这么做’。”
阿迪亚合上笔记本,把它放在堆满电子元件的台面上。窗外,天色渐暗,纺织厂的断壁残垣被晚霞染成铁锈的颜色。
“他需要一个理由。”
“每个人都需要一个理由。”米兰达站起来,走到窗前,背对着阿迪亚,“技术是我见过的最好的理由。当你用代码说话的时候,后果变成了一个抽象概念。你不会看到赫玛女士客厅里那三十七个相框,不会看到安维穿着黄色上衣回头微笑的那张脸。你能看到的只有数据——系统响应时间、指令成功率、效能评分。维克拉姆在日记里最后一次提到罪人这个词,是事发前三天。他写——‘我不是罪人,我只是一个按按钮的人’。”
阿迪亚从台面上捡起自己的笔记本,翻到记录维克拉姆日记的那一页,在旁边加了一条注释:“按按钮的人——责任稀释——与投票者机制完全相同。他不是在服从命令,他是在把自己的责任稀释给发布命令的人。就像投票者在把杀意稀释给所有按下按钮的人。”
“你觉得他直到死都相信自己不是罪人吗?”
“不知道。但他在日记里写了两百多页,两百多页都在问同一个问题。回答这个问题的人是那个烧掉他硬盘的人——用两个字回答的。无用。”
他忽然想到一件事。
“‘秩序’在杀死维克拉姆之前一定已经知道维克拉姆在给自己留后路。他不是因为失去了利用价值才被杀——是因为他变成了威胁。维克拉姆这三年里接触的设备清单、配电室的访问密码、系统漏洞的利用方式——所有这些都被他记在了日记里。如果他被捕,这些数据会变成控方最有力的证据。”
“所以‘秩序’必须在他变节之前消灭他。”
阿迪亚轻轻敲了敲笔记本封面。“不。更精确的说法是——‘秩序’必须在维克拉姆自我欺骗失败之前消灭他。在日记消失之后,他不再内疚,不再忏悔,甚至不再安慰自己。他只是在沉默中执行任务。一个人如果不再需要说服自己,他就不再有忠诚的锚点。‘秩序’看穿了这一点——日记不再写了,维克拉姆也就没用了。”
米兰达最后从硬盘残片中找出的是一份加密名单。名单上列着卡纳克普尔境内三十多个可能被用于远程攻击的“可用节点”——包括无人看守的变电站、废弃工厂的配电间、旧工业区的水泵站、以及三所公立学校的维护通道。每一个节点后面都标注了访问方式和大致覆盖范围。这张名单是维克拉姆花了三年时间实地走访之后整理出来的。
而名单最后一行,赫然标注着圣约瑟夫医院——备用电源切换控制器的维护通道位置、默认密码和管理员接口类型。
那个在“投票者”页面上获得最多票数的目标。
阿迪亚把那页笔记的编号填入笔记本最后一页,划下一条粗重的下划线。在那一瞬间,他同时想起了三样东西:维克拉姆在日记里写下的“必须这么做”,投票页面上不断跳动的赞成数字,以及赫玛女士桌上那盏长明灯里安静燃烧的酥油。它们之间隔着无法测量的距离,却又被同一条因果链条锁在一起。
他拨通了拉维的电话。
“找到‘螺丝刀’的在线时间规律——如果他真的是名单上那些节点的维护人员之一,他的工作排班表和论坛上线时间会吻合。我不需要直接定位他,我只需要知道他在现实世界中是谁,在哪个机构工作,能接触到哪些‘可用节点’。只要他上线,只要他投票,只要他还在屏幕后面敲字。”
挂断电话后,他看向窗外。一座即将被投票表决的城市在黄昏中安静地亮起万家灯火。每亮一盏灯,都像是对一个数字开关的无声投降。


暂无评论,来抢沙发吧!