17. 程序的逆转

奥利安从七号发电站回到公寓时,天已经黑透了。他没有开灯,坐在书桌前,电脑屏幕的蓝光是房间里唯一的光源。他打开魅影赌场的后台管理系统,输入了管理员权限密码——一串十六位的随机字符,每九十天更换一次,存储在只有他知道的物理隔离终端上。

但今晚他不是来管理系统的。他是来解剖它的。

零度的账户在魅影赌场的用户数据库中是一个特殊的存在。它不是赌客账户,不是庄家账户,而是一个披着普通用户外壳的超级管理节点。奥利安在设计这个系统时给了零度三级权限——足以访问服务器架构、修改用户参数、查看资金流向,但不足以触及核心算法和最终的资金出口。这是一个精心的平衡:让零度有足够的权力去维护系统,但没有足够的权力去控制系统。

现在他要做的是反过来——用系统去追踪零度。

他调出了零度账户的所有登录日志。数据跨度四个月,从魅影赌场上线的第一天开始。IP地址分布在七个不同的国家,时间戳覆盖全天二十四小时,没有明显的休息周期。这正是艾琳发现的异常——一个人不可能永远在线。但如果三个人轮流使用同一个账户,每个人工作八小时,就能实现无缝覆盖。

三个人。不同的时区。不同的打字习惯。不同的——

他停住了。

打字习惯。

每个人的键盘输入模式是独一无二的。击键之间的间隔时长、特定字母组合的输入速度、退格键和回车键的使用频率——这些参数组合在一起形成的模式,比指纹更难伪造。零度在操作系统时会产生大量键盘输入数据,而这些数据全部存储在魅影赌场的服务器日志里。它们从来没有被分析过,因为没有人在乎零度是怎么打字的。

奥利安打开日志数据库,编写了一组脚本,将零度账户的全部键盘输入记录按照时间序列提取出来。数据量很大,大约有几十万次击键记录。他将数据导入分析软件,设置了三个聚类参数:平均击键间隔、错误修正频率、复杂指令的输入流畅度。

软件运行了大约四十分钟。

结果出来时,屏幕上的数据分成了三个清晰的聚类。

第一个聚类:击键间隔极短,平均零点一二秒,错误修正频率为零点三,复杂指令输入流畅度极高。这个人打字像机器一样精准。奥利安给这个聚类贴上标签:执行者。穿灰风衣的男人。他的技术能力最强,但也最缺乏人类特征——他打字的时候,键盘和手指之间没有多余的动作,没有犹豫,没有修正,只有纯粹的指令输出。

第二个聚类:击键间隔较长,平均零点二五秒,错误修正频率为百分之三,输入流畅度中等。这个人的打字模式带有明显的学术特征——长串术语输入时没有错误,但日常词汇偶尔会打错。他在使用零度账户时主要做的是数据分析和情报整理。奥利安给这个聚类贴上标签:告密者。他是给艾琳提供信息的人。

第三个聚类:击键间隔不稳定,在零点一五秒到零点四秒之间波动,错误修正频率高达百分之七,但所有修正都是在输入涉及资金参数的指令时发生的。这个人每次修改资金数据时都会犹豫——手指在回车键上方悬停的时间比正常人多出零点三秒。零点三秒,在计算机时间里是一个巨大的停顿。奥利安给这个聚类贴上标签:干预者。这个人修改了HL-0903的参数。

三个聚类。三个不同的人。

奥利安靠在椅背上,屏幕的光照在他脸上,把他的眼睛映成两块浅色的光斑。他有了三个数字指纹,但还没有名字。数字指纹只能证明存在三个人,不能说出这三个人是谁。

但他在想别的事情。

干预者的击键模式和其他两个人有根本性的差异。执行者和告密者虽然目的完全不同——一个要维护系统,一个要瓦解系统——但他们的技术背景相似,都是经过严格训练的计算机专家。干预者不是。干预者的输入习惯暴露了他对键盘的不熟练,他在输入指令时经常使用退格键,会反复修改措辞,在某些复杂命令上明显是在复制粘贴而不是手动输入。

干预者不是一个技术专家。他只是一个有权限登录零度账户的人。

一个被给予了权限,却不完全知道如何运用它的人。

奥利安想起了零度账户的创建过程。他在设计魅影赌场之初需要两个执行层面的助手——一个负责服务器运维,一个负责数据管理。他通过加密网络发布了招聘信息,面试了几十个候选人,最终选定了两个人。他们从来没有见过面,所有交流都通过加密线路完成。他对他们的了解仅限于技术测试的结果和一个代号。

但那只是两个人。

第三个零度是什么时候出现的?

他调出了零度账户的权限变更日志。日志显示,零度账户的原始创建日期是一年零三个月前,分配给两个子账户——零度-A和零度-B。但在十一个月前,系统中出现了一个新的子账户——零度-C。创建者不是奥利安·弗洛斯特,而是零度-A。

零度-A创建了零度-C,然后给了它和自己完全相同的权限。

为什么?

奥利安把零度-C的所有操作记录调出来,按时间顺序排列。最初的几个月,零度-C几乎没有活动——只是偶尔登录,查看一些非敏感数据,然后退出。他的行为像一个在暗中观察的人,不介入,不干预,只是看着。然后,在四个月前——也就是艾琳·瓦茨开始调查魅影赌场的时间点——零度-C的活动突然增加。

他开始下载数据。

不是系统运行数据,而是用户行为分析报告、资金流向统计、以及奥利安·弗洛斯特的学术档案。

奥利安盯着屏幕上这些被零度-C下载过的文件名称,手指在桌面上轻轻敲击。他认识这些文件。这些正是艾琳·瓦茨在她的报道和听证会发言中引用的数据。

告密者是零度-C。

而零度-C是被零度-A创建的。

但零度-A是谁?

奥利安打开了零度-A的登录记录。IP地址经过了多层代理,但在最早的几周里——魅影赌场刚刚上线、安全措施还没有完全到位的那几周——有一个IP地址是裸奔的。它没有被加密代理覆盖,直接暴露在日志里。

那个IP地址属于尼瑟大学内部网络。

更具体地说,属于应用数学系的服务器机房。

奥利安把电脑合上。

他不需要再往下查了。应用数学系的服务器机房只有三个教职人员有权使用——他,系主任,还有一个——

阿德里安·科瓦奇。

不是犯罪学教授阿德里安·科瓦奇。是他弟弟,马蒂亚斯·科瓦奇,应用数学系的高级讲师,一个在系里工作了二十年但从未发表过一篇重要论文的沉默男人。他负责维护数学系的服务器网络,拥有最高级别的系统管理权限。他在服务器机房里度过了无数个夜晚,而那些夜晚正是零度-A活动最频繁的时间段。

马蒂亚斯·科瓦奇是零度-A。

但阿德里安·科瓦奇——退休的犯罪学教授、艾琳的导师、拉扎尔正在调查的人——他是零度-C吗?还是他只是恰好和零度-A有同一个姓氏?

奥利安从椅子上站起来,走到窗边。灰港区的灯光在他脚下铺展开来,稀疏而昏暗。七号码头的方向,一艘驳船正在夜航,红色和绿色的航行灯在黑暗中缓缓移动,像一对低空飞行的萤火虫。

他曾经给零度分配权限时,以为自己在设计一个严密的控制系统。但系统从来不是封闭的——系统里有人,而人会在系统中生下自己的系统,就像细胞分裂一样,不受控制,不可预测。

他转身回到书桌前,打开了一份空白的文档。光标在屏幕中央闪烁,像一颗悬而未决的心跳。他开始打字。不是数学公式,不是分析报告,不是系统日志。是一封信。

“致联邦金融犯罪调查局:

以下是魅影赌场运营系统内部授权人员零度账户的完整活动记录、数字指纹分析及身份推断。日志附后。此外,以下记录展示了魅影赌场向锚石咨询输送资金的完整路径,以及锚石咨询为联邦众议员赫尔曼·泰格尔提供竞选服务的财务对账表。”

他写完这封信,停了一下,然后继续打字。

“我参与设计并运营了一个在线非法博彩平台,该平台的财务活动触犯了联邦金融法律。本文件中包含的所有证据均由我本人提供。”

他把自己写进了供述里。

不是因为拉扎尔说服了他。不是因为索菲亚会同意——她绝不会同意。而是因为他站在七号发电站的时候,听到了拉扎尔那句话说艾琳在墙上留下的四道指甲划痕。四道痕,从左到右,十六厘米长。法医说那是肌肉痉挛造成的无意识动作。但她在黑暗中拼命想要留下什么——也许是凶手的名字,也许只是一个信号,告诉后来的人,她曾经在这里。

他想起了一件事:HL-0903账户被提空的那天,提现操作路径显示是“灰港区IP段”。灰港区。不是旧船厂,不是上城区,不是任何其他地方。灰港区是艾琳住的地方,是玛格丽特住的地方,是那两千个被魅影赌场吞噬了积蓄的人住的地方。那天提走所有钱的人,也许就是干预者本人——那个不属于技术圈却依然拿到了零度权限的人。

奥利安看了看文档末尾的光标。它还在闪,一明一灭,像一个在远处黑暗中缓缓转动的灯塔。他把信用加密格式保存,然后拨通了索菲亚的电话。

电话响了三声就接通了。

“耶尔马克律师,”他的声音依然平稳,但句子之间停顿的时间比平时略长,“我需要你帮我处理一份文件。一份可能会改变我目前所有法律处境的文件。”

“弗洛斯特博士。”索菲亚的声音警觉起来,“你做了什么?”

“我写了一封信。附带了魅影赌场后台的完整数据和一份身份推断。如果我把这封信寄给调查局,我将不得不承认我参与的每一项指控。”

电话那头沉默了长达十秒。

“你确定你要这么做吗?”

奥利安想起玛格丽特说过的一句话。做过的每一件事都会留在世界上的某个地方,像照片一样。不一定会被别人看到,但一定在。

“耶尔马克律师,你从来没有赢过一个叫‘奥利安·弗洛斯特’的人的案子。你只赢了一场关于‘程序正义在宪法第二十二条上的应用’的辩论。”

索菲亚没有说话。

“我想做的是另一件事。那件事的名字还不确定。暂时——就叫它‘真实’吧。”

他挂断了电话。窗外,七号码头的那艘驳船已经驶出了灰港区的水域,红色和绿色的航行灯渐渐融入远处城市的灯光海洋里。奥利安把视线从窗外收回,落在屏幕上那封信的收件人栏里。他填上了一个名字:维克托·拉扎尔。

然后他关掉了屏幕。黑暗重新涌入房间。在完全的黑暗中,他把右手摊开,看着那些掌纹,想不起米里亚姆医生说的“镜像神经元”这个词,只记得她说的——关闭不等于删除。

本章评论(0)

暂无评论,来抢沙发吧!

我来评论

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