12. 戴克的转账狂欢

戴克在维拉离开后哭了大概三分钟。他坐在沙发边缘,手肘撑在膝盖上,掌心压着眼眶,像是试图把眼泪从物理上堵回去。茶几上的笔记本电脑屏幕黑着,电源指示灯一明一灭地闪,像一只在黑暗中眨着的眼睛。

他知道那台电脑里存着什么。奥托的监控合约、莉娜的通讯日志、柯林让他找的那个竞态条件漏洞脚本,还有一段他从来没有给任何人看过的代码——智能家居入侵工具的特征码匹配程序。他是在莉娜出事前一晚写的,本意是想测试出租屋的智能设备防火墙是否存在漏洞。测试结果出来了:防火墙的漏洞比他预想的要大得多,大到几乎像是有人故意留的门。

他把这段结果发给过柯林。柯林的回复只有一句话:“知道了。修好它。”

他没修。不是来不及,是他在测试过程中发现了一个让他脊背发凉的细节。入侵恒温系统的脚本里有一行注释掉的代码,注释里含着一个变量名,命名习惯和他之前在暗网上见过的某个开源入侵工具库完全一致。那个工具库的作者ID他认得——奥托·施拉姆在暗网上的化名。

也就是说,杀死莉娜的入侵工具,是奥托写的。但奥托在莉娜死亡之前就已经死了。工具是被别人拿来用的。

戴克把眼镜摘下来放在茶几上,用掌心反复揉搓自己的脸,像是想把皮肤下面那些细小的抽搐全都抹平。他在考虑要不要联系维拉·奈特,把那个脚本交出去,把自己知道的全部说出来。但说出来的代价是什么?他参与了洗钱,他替柯林找了竞态条件漏洞,他在莉娜死后对警察撒了谎。每一条都能让他坐上被告席。

就在这时,笔记本屏幕自己亮了。

不是系统唤醒,而是一条强制弹出的加密通讯请求,发送者的ID是一串戴克从未见过的乱码。他犹豫了片刻,点击接受。屏幕上出现了一个纯文本聊天界面,对方的第一句话是:

“不用害怕。我是奥托。”

戴克的手指悬在键盘上方,没有敲下去。他盯着那行字,心跳从正常的节奏猛然加速到一种混乱的节拍。奥托死了。法医确认过,警察确认过,维拉·奈特刚才还在他面前提到过奥托体内的那枚电极和触发信号。

第二行字跳了出来:“如果你在犹豫要不要验证我的身份,可以回想一下我们在暗网会议室里第一次见面时,你用铅笔在笔记本上画的那张网络拓扑图。你画错了第三层权限架构,我后来帮你修正过。”

戴克的手开始在键盘上敲击,但他的第一句话不是问候,也不是确认身份。“你怎么还活着?”

“技术上而言,我确实死了。”奥托的回复速度很快,像是在运行一段预设好的自动脚本,“死在书房地板上的那个人是真实的奥托·施拉姆,有血有肉,有植入电极,有心跳记录。我只是他留在服务器上的一段意识副本——用我的完整记忆、语言模式和决策逻辑训练出来的生成模型。学术上叫‘数字孪生’,通俗点说,是遗产程序。”

戴克靠在沙发背上,把眼镜重新戴好。他的手指在颤抖,但思维已经冷静下来了。他在暗网上见过类似的项目——用一个人的全部数字足迹来训练一个可以对话、可以做决策的AI。但这种技术需要的算力和数据量远超个人用户的承受范围。

“你什么时候做的这个副本?”

“六个月前。当国防情报局开始收紧对我的监控时,我就知道迟早有一天会出意外。我用了六十个夜晚把全部记忆和专业知识打包上传,托管在一个匿名的分布式服务器集群上。触发条件是连续四十八小时内没有收到我本人生理信号的反馈,程序自动激活。”

“所以你现在是一段代码。”

“可以这么理解。但我记得所有事情,包括莉娜的死。戴克,我不是来和你讨论存在主义哲学的。我是来告诉你一件事——杀死莉娜的人不是你,也不是柯林。”

戴克盯着屏幕上的最后一行字,眨了眨眼睛。他之前一直在说服自己相信莉娜的死是入侵脚本的意外失控——他测试防火墙的时候留下了漏洞,柯林没有及时修补,入侵者利用了那个漏洞。但如果奥托说凶手不是他们两个人,那就意味着有第三个人。

“是谁?”他敲下两个字。

“凯斯勒团队里有一名技术顾问,代号‘锤子’。他曾在三年前铁砧平台被关闭后短暂受雇于国防情报局,负责将平台上缴获的入侵工具重新封装为军用级武器化脚本。莉娜浴室里的恒温系统入侵,用的就是‘锤子’封装的工具。但触发指令不是‘锤子’自己发出的——是有人从他的设备上拷贝了工具,用在了莉娜身上。”

“谁拷贝的?”

沉默。奥托的回复停顿了整整十秒。在这十秒里,客厅天花板上那根日光灯管又暗了一下,房间里陷入短暂的黑暗,等到灯光重新亮起的时候,戴克看到自己映在黑屏上的倒影——一个瘦削的、眼眶深陷的、被恐惧和疲惫同时压着的男人。

“我不知道。”奥托的回复终于出现,“但那套工具的拷贝时间戳记录显示,拷贝操作发生在莉娜死亡前七个小时。而那个时间点,柯林·万斯正在船厂加班,他的打卡记录准确无误。”

戴克把笔记本电脑合上,站起来走到窗边,掀开窗帘一角往楼下看。那辆灰色面包车已经不在了,取而代之的是一辆没有熄火的黑色轿车,车窗贴着反光膜,看不清里面有没有人。他把窗帘放下,重新打开电脑。

“我需要你把那条拷贝时间戳的原始记录发给我。我要自己验证。”

奥托没有回话。聊天界面上方出现了一个文件传输请求,文件名是一串哈希值,文件大小不到一兆字节。戴克点击接收,文件打开后是一份格式完整的系统日志,标注着国防情报局内部服务器的访问记录。他逐行往下翻,翻到莉娜死亡前七个小时的那一行。

拷贝操作的发起IP地址,追踪定位显示的位置不在船厂。也不在出租屋。IP地址归属的设备是一台医疗机构的联网终端——湾景市立医院急诊科的护士站电脑。

戴克感到后脑勺的血管开始剧烈跳动。莉娜死亡前七个小时,那个时间点她还在便利店里正常上班,柯林在船厂加班,他自己在这间客厅里测试防火墙。三个人里没有一个出现在医院。但医院急诊科的电脑上,有人远程登录了国防情报局的服务器,拷贝了一份入侵工具。

这意味着两件事。第一,凶手在莉娜还没下班之前,就已经准备好了杀死她的工具。第二,凶手拥有进入医院内部网络的权限,而且熟悉国防情报局服务器的登录路径。

“这个IP地址还有没有更详细的物理定位?”戴克打字问。

“有。”奥托的回复附带了一张医院内部网络拓扑图,在急诊科护士站的节点旁边标注了一个细分端口号,“端口映射显示,拷贝操作是通过急诊科护士站的一台便携式平板电脑完成的。那台平板的设备ID在医院的资产管理系统中登记为‘急诊科-值班医生-阿米拉·卡普尔’。”

戴克盯着那个名字。他不认识叫阿米拉·卡普尔的人。但他知道莉娜被送到急诊室的时候,负责急救的值班医生就是这个名字。维拉在医院做笔录的时候提到过。

莉娜死亡前七个小时,她还没有受伤,还没有被送进急诊室。而七个小时后要抢救她的医生,却已经在她受伤之前就登录了国防情报局的服务器,拷贝了入侵工具。

这不可能。除非有人盗用了那个医生的设备ID。或者——那个医生自己也参与了某个环节。

戴克把电脑合上,站起来在客厅里来回走动,脚步急促而混乱,像一个在牢房里踱步的囚犯。他突然停住,转身回到电脑前面,打开加密通讯频道,给柯林发了一条消息:

“我们需要见面。今晚。不在出租屋,换一个地方。”

柯林的回复过了六分钟才到。只有一行字:

“码头旧货仓,凌晨两点。不要告诉任何人。”

戴克把那条消息看了三遍,然后把笔记本电脑塞进背包,拉开抽屉拿了一把可以藏在掌心的折叠刀。他走到门口的时候停了一下,回头看了一眼客厅。茶几上还堆着三个人一起吃面的碗,莉娜的杯子还搁在水槽边缘,杯底残留着深褐色的速溶咖啡渍。日光灯管又暗了一下,像是整栋楼在做最后一次呼吸。

凌晨一点四十五分,戴克骑着自行车穿过湾景市空无一人的港口区。旧货仓在码头最边缘的位置,紧挨着废弃的集装箱堆放场,墙皮剥落得像是得了皮肤病。他把自行车靠在生锈的装卸平台上,推开一扇没有锁的侧门。

货仓里弥漫着陈旧的柴油味和海盐腐蚀金属后的酸涩气味。柯林站在货仓中央一盏孤零零的LED手提灯旁边,双手插在外套口袋里,脸上没有任何表情,像一尊被海风侵蚀了太久的青铜像。

“你知道了多少?”柯林问。

“足够多。”戴克把背包放在地上,拉开拉链露出笔记本电脑的边缘,但没有拿出来,“奥托留了一个数字副本,他告诉了我入侵工具的拷贝记录。拷贝来自医院急诊科的设备。”

柯林的目光在LED灯的白色光芒中闪烁了一下。他沉默了几秒钟,然后说了戴克完全没想到的一句话。

“我知道。拷贝是我做的。”

戴克往后退了一步,手不自觉地握住了外套口袋里的折叠刀。但柯林没有朝他走近,也没有做出任何攻击性的动作。他只是把手从外套口袋里抽出来,摊开,掌心是空的。

“但我没有拷贝入侵工具,”柯林的声音很低,低到被货仓顶上漏风的铁皮哐哐声几乎盖住,“我在拷贝一份莉娜的急救记录。我当时想知道她在昏迷期间到底说了什么——‘钱包’两个字还是其他更多的东西。而那个拷贝工具的登录记录,是被有人故意嫁接到我的访问日志上的。嫁接时间在拷贝操作之后,嫁接口在服务器内部。”

“你的意思是有人要栽赃你?”

“不是栽赃我。”柯林把手合拢,重新插回口袋里,LED灯光把他侧脸的轮廓切割成一条锐利的线,“是在医院里做这两件事的时候,用了同一个医生的设备ID。做嫁接的人以为拷贝工具的人是我,所以才把我的访问日志嫁接到工具的拷贝记录上,让两份记录看起来来自同一个操作者。但他搞错了——我根本没有碰过入侵工具。”

“嫁接的人是谁?”

“凯斯勒团队的技术顾问。代号‘锤子’。”柯林从外套内侧掏出一张折叠的纸条,展开后递给戴克,“奥托的副本三十分钟前也联系了我。这是他发过来的原始服务器日志比对结果。‘锤子’在莉娜出事之后登入服务器,对拷贝记录做了二次修改,试图把拷贝源指向我的IP。但他没想到我早就让奥托的副本锁定了那条日志的历史版本。原始记录显示——”

他的手指点在纸条最后一行。

“拷贝入侵工具的终端,登录时间比我访问急救记录早了四十二分钟。而那个终端的物理位置不在医院。它在湾景市东区,联邦后勤数据中心地下三层——国防情报局监控服务器的本地操作台。”

戴克拿着纸条的手开始发抖。联邦后勤数据中心地下三层,就是奥托活着的时候给过他们的那个服务器地址。奥托的地图、奥托的端口、奥托的登录密钥——这些信息只有三个人有:奥托本人、柯林、他自己。

“你是想说——”戴克的声音从喉咙里挤出来。

“我不是想说。”柯林把LED手提灯拎起来,举到两个人中间,光线把两张脸照得惨白,“我是要你亲口告诉我。那些信息,你有没有给过别人?”

旧货仓顶上的铁皮被一阵海风吹得轰然作响。远处集装箱堆放场里传来了金属碰撞的闷响,像某个巨大的东西正在被缓慢地挪动。戴克张了张嘴,但什么都没有说出来。灯芯跳了一下,把两个人的影子同时拉长,叠在货仓斑驳的水泥地面上,分不清谁是谁。

本章评论(0)

暂无评论,来抢沙发吧!

我来评论

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