上午九点四十分,奥姆尼科尔大楼地下停车场B2层。
埃琳娜·瓦茨从一辆不起眼的灰色送货车副驾驶座上跳下来。她穿着一件奥姆尼科尔后勤部门的深蓝色工作服,左胸口袋上绣着设备维护组的编号,头发塞进一顶印有公司旧版标志的棒球帽里。这身制服是她从废弃测试间里翻出来的——奥姆尼科尔在七年前换过一次品牌标识,旧版制服全部回收销毁,但后勤处的回收流程有一个漏洞:销毁清单上的物品和实际销毁的物品之间,总隔着几个落满灰尘的纸箱。她就是从那几个纸箱里找到的这件衣服。
工作服胸口的口袋里装着一张复制的员工卡。卡面上的名字是一个已经离职六年的后勤工程师,照片被换成了她的,但照片的角度和光线和原版略有偏差。如果有人在系统中细查,会发现这张卡的使用记录在今天之前是一片空白。但埃琳娜赌的是没有人会在全员召回的大混乱中细查一个设备维护工的身份。
她走到停车场东侧墙壁的设备间门口,用员工卡刷开了门锁。设备间里堆满了废弃的服务器机架和盘成捆的旧网线,空气里弥漫着电子元件老化和除锈剂混合的气味。最里面的墙上有一块金属隔板,固定在墙面上,用四颗六角螺丝锁着。隔板上贴着一张已经褪色的警示标签——“旧通风管道入口,已封闭,请勿开启”。
埃琳娜从工具包里取出六角螺丝刀,开始一颗一颗地卸螺丝。她的手很稳,呼吸均匀。七年来她在这栋大楼里做过无数次日复一日的算法优化工作,从来没有像今天这样清醒。
第三颗螺丝卸下来的时候,她的耳机里传来了维吉尔的声音。
“埃琳娜,我监控到奥姆尼科尔内部安防频道刚才发了一条全员通告——地下一层核心数据保险库的安保级别在上午十点整将从三级降至一级。降级理由是‘系统维护窗口期’。维护时间窗口是十点至十一点。和你需要的时间完全吻合。”
“瓦尔科没有骗我们。”埃琳娜把第四颗螺丝卸下来,轻轻取下金属隔板。隔板后面露出一个黑洞洞的方形管道口,边缘锈迹斑斑,大小刚好够一个人匍匐通过。
“但她也没有告诉你全部。”维吉尔说,“我刚才逆着奥姆尼科尔的内部通讯日志往上追了三层,发现那条降级安保级别的系统指令,签发人不是安保部主管,而是一个加密的管理员账号。账号的权限代码指向联邦情报局副局长办公室。”
“瓦尔科在帮我们开门。”
“她在开门的同一时间,把联邦情报局所有驻奥姆尼科尔的联络官全部撤回了。名义上是参加例行安全培训。这不是帮忙——这是清场。她不想让任何联邦情报局的人看到你们在做什么。这意味着如果你们被抓到,联邦情报局会否认一切接触,包括昨晚和克罗斯的会面。”
“她本来就是这么说的。她说联邦情报局不参与国内执法。”
“不参与国内执法,不等于不会在你们离开大楼之后把你们交给联邦司法部。你确定她能靠得住?”
埃琳娜把螺丝刀收回工具包,打开头灯,往管道里探了一眼。管道内壁上结着几十年的灰尘和锈垢,一股潮湿的金属味扑面而来。
“不确定。”她说,“但我确定另一件事——如果没有联邦情报局的内部配合,核心数据保险库的安保级别不可能在伊顿宣布裁定的同一小时恰好降到最低。不管瓦尔科的动机是什么,她需要这份代码。而我需要她开的这扇门。”
她把头灯的光调到最亮,双手撑住管道口的边缘,把自己拉了进去。
管道很窄。她的肩膀擦着两侧的金属壁,每往前移动一米都要靠脚尖蹬着管壁借力。头灯的光束在黑暗里打了不到两米就散了,只能照亮面前的一小片空间。灰尘扬起又落定,悬浮在光柱里,像微小的、缓慢移动的星团。
耳机里维吉尔的声音在持续更新法庭那边的情况。
“九点五十分。伊顿法官已经进入法庭。索恩坐在旁听席第一排。克罗斯在记者席。杰米·莫兰和他哥哥罗南坐在后排。德拉蒙德在鉴定席上。缪拉本人没有出席——他派了助理坐在联邦司法部的席位。但克劳处长来了。他坐在旁听席最左边,一直在看手机。”
“艾恩呢?”
“艾恩在鉴定席的另一侧。和德拉蒙德之间隔了三个人的距离。他今早从城北工作室出发的时候,在他的门外发现了一个信封。信封里是一张手写的纸条,只有一句话——‘你的针痕分析是对的。那台机器的第三针和第七针确实磨损最严重。’纸条没有署名。但你知道是谁写的。”
埃琳娜在管道里停了一下。德拉蒙德。他今天早上在他自己的信箱里塞了一张纸条,告诉艾恩他是对的。然后他穿上鉴定处的制服,走进法庭,准备在几个小时之后继续为假原件辩护。
“他现在在鉴定席上做什么?”
“在擦显微镜的目镜。和昨天一模一样。”
埃琳娜继续往前爬。管道的坡度开始向下倾斜,目的地是地下一层的核心数据保险库外围维护区。她的头灯照到了前方管道内壁上的一组标记——用油漆喷的数字和箭头,是当年建筑工人留下的施工记号。箭头指向管道的下一个转弯。
“维吉尔,你能看到OMNI-SRV-001的实时状态吗?”
“看不到内部数据。但我能监控它的物理网络接口流量。目前流量正常,服务器处于待机状态。但有一个异常——在全员召回之后,这台服务器的外部访问权限被全部切断了。它现在是一个物理孤岛。唯一能访问它的方式,是通过直接连接在保险库内部的控制终端。你必须亲手碰到那台终端。”
“意料之中。缪拉不会让最核心的证据留在可以被远程访问的服务器上。”
“不是缪拉。”维吉尔说,“切断外部访问的指令来自奥姆尼科尔内部,签发人是马库斯·凯恩——奥姆尼科尔首席执行官。他在今天早上七点签发了这条指令。七点是缪拉的记者招待会重播时间段。凯恩选择在全城人都在看缪拉的时间做这件事,说明他不信任缪拉。或者他不信任任何人。”
埃琳娜停在管道的最后一个转弯处。头灯的光束照到了前方管道尽头的另一个金属隔板。隔板外就是核心数据保险库的外围维护区。她深吸一口气,推开隔板,爬了出去。
维护区是一条狭窄的走廊,两侧是密集的线缆桥架和冷却管道。走廊尽头是一扇厚重的合金门,门框上方的电子屏显示着保险库的安全状态——当前安保级别:一级。维护窗口期已激活。允许进入:设备维护人员。
埃琳娜用那张复制的工作卡在门禁读卡器上刷了三次。第一次,红灯。第二次,红灯。第三次,绿灯。门锁弹开的声音在狭窄的走廊里回荡了很长时间。
保险库内部比埃琳娜预想的要小。大约只有二十平方米,没有窗户,墙壁覆盖着灰色的吸音材料。天花板上的日光灯发出均匀的白色冷光。房间中央并排摆着三台服务器机柜,每台机柜上都贴着编号标签。最左边的机柜标签上写着——OMNI-SRV-001。
机柜旁边有一台控制终端。屏幕处于待机状态,但电源指示灯亮着。
埃琳娜走到终端前,深吸了一口气,按下了空格键。
屏幕亮了起来。登录界面。用户名。密码。
她输入了自己的旧员工账号。屏幕弹出一行红字:账号已注销,访问被拒绝。
她又输入了那个复制来的后勤工程师账号。屏幕再次弹出红字:账号权限不足,访问被拒绝。
“维吉尔。我的两个账号都进不去。”
“等一下。”维吉尔的声音里透出键盘敲击的密集节奏,“我在试奥姆尼科尔内部管理员权限的后门。有一个测试网段的特权账号——埃琳娜,你记不记得你刚入职的时候,公司给你分配过一个临时培训账号?”
“那个账号在培训期结束之后就注销了。”
“在用户端注销了。但在服务器端的权限映射表里,培训账号的注销有时候只是被标记为‘休眠’,不会被物理删除。如果你的培训账号还在权限映射表里,我可以从外部把它的状态从‘休眠’改回‘激活’。给我三十秒。”
埃琳娜盯着屏幕上的登录界面。日光灯的嗡嗡声填满了整个房间。她的手指悬在键盘上方,没有颤抖,但指节因为用力而微微发白。
屏幕闪了一下。登录界面刷新了。用户名栏自动填入了她的培训账号——ELN_WTZ_TRN_001。密码栏空白。
“密码是你入职第一天的日期。”维吉尔说,“月日年,六位数字。”
埃琳娜输入了那六个数字。回车。
屏幕转入了奥姆尼科尔内部操作系统的桌面界面。桌面上排列着几十个文件夹和快捷方式,其中最显眼的是一个红色的加密文件夹,文件名只有两个字——纯序。
她点开文件夹。
里面有两个子文件夹。第一个标注为“倾向性放大调节器_源代码及修改日志”。第二个标注为“项目纯序_原始研究档案_已于七年前终止”。
埃琳娜先点开了第一个文件夹。
源代码在屏幕上展开。数万行代码,每一行都标注着提交时间、提交人账号和审核人账号。她快速滚动到核心模块——倾向性放大的权重设定函数。在第4372行,她找到了她要找的东西。
一组手动设定的固定权重。权重标签列表不是代码自动生成的变量名,而是人工输入的注释。注释里写着桑德区及其周边九个街区的邮政编码,后面跟着一个乘法系数——1.7。在代码的世界里,1意味着原始风险评估值保持不变。1.7意味着风险被放大百分之七十。注释旁边有提交人签名:功能扩展需求提出人:哈兰·缪拉,联邦司法部长办公室。技术实现人:马库斯·凯恩,奥姆尼科尔首席技术官办公室。审核批准人:莉迪亚·瓦尔科,联邦情报局副局长办公室。
不是算法自发产生的偏差。是三个人,手动设定了一个固定的数字,把一整个街区的每一个居民的风险都放大了百分之七十。然后系统在这百分之七十的放大基础上,再自动判定谁“更可能在不同场合犯罪”。
“找到了。”埃琳娜说,声音低得像是从地底下传上来的,“倾向性放大调节器的源代码。手动固定权重。标签直接指向桑德区邮政编码。系数1.7。三个人签字——缪拉、凯恩、瓦尔科。”
维吉尔在频道那端沉默了一秒。然后他的声音变了,不再是一个技术顾问的声音,而是一个在真相面前短暂失去了所有技术语言的普通人。
“瓦尔科在源代码里签了字。但她昨天晚上告诉克罗斯,她不知道偏见是被故意设计进去的。”
“她知道。”埃琳娜说,“她一直知道。她只是等了七年,等到有人能把这行代码从地下一层挖出来,拿到法庭上,让她可以用‘提供关键证据’的身份在最后一刻转换阵营。她不是良心发现。她是在给自己留后路。”
“存储这份文件。然后看第二个文件夹。”
埃琳娜插入物理存储卡,开始复制源代码文件。复制进度条慢慢往前爬。她的眼睛盯着屏幕上的第二个文件夹——项目纯序_原始研究档案_已于七年前终止。
她点开了它。
里面是一份PDF扫描件。一份手写的项目提案。纸面上是旧式打字机的字体,页边距不整齐,纸张泛黄。提案标题写着——项目代号:纯序。目标:通过预犯罪大数据建模,识别潜在刑事犯罪高发个体,在犯罪发生前进行社会干预。提案人:哈兰·缪拉,新奥林匹亚共和国联邦司法部刑事证据审查处。日期:十五年前。
埃琳娜一页一页地往下翻。提案的前半部分是一个正常的学术研究计划——通过社会经济学数据、教育记录、就业历史和家庭结构等变量,建立犯罪风险预测模型。但翻到第十七页,文字骤然变了。
第十七页的标题是——“第二阶段实验方案:桑德区实地验证”。方案描述了一种测试方法:在桑德区选定一千名居民作为观察组,同时选定富人区一千名居民作为对照组。对观察组定向投放诱发焦虑和攻击性的社交媒体内容,同时对对照组投放中性内容。持续六个月后,对比两组的犯罪报案率变化。预期结果:观察组的犯罪报案率将显著高于对照组。
“诱发焦虑和攻击性的内容。”埃琳娜低声读出了这行字,“他们在桑德区做了实验。不是观察犯罪。是制造犯罪。”
第十八页是实验结果。观察组的犯罪报案率比对照组高出百分之三十七。结论栏里用红笔写了一行字:“实验成功。证明犯罪率可以通过信息环境干预被人为升高。帕诺普蒂孔系统的倾向性放大调节器将基于此实验成果进行工程化实现。”
百分之三十七。
这个数字埃琳娜见过。缪拉在记者招待会上引用的那个数字——帕诺普蒂孔让街道比七年前安全了百分之三十七。那个数字不是系统带来的安全提升。那个数字是十五年前他们亲手在桑德区制造出来的犯罪率升幅。他们把水搅浑,然后指着浑水说——你看,原来就有这么浑。
埃琳娜把这份PDF也复制到了存储卡上。
就在这时,保险库门外传来了一阵脚步声。
不是一个人的脚步。是两个人的。步伐整齐,沉稳,正在沿着维护区的走廊朝保险库走来。耳机里维吉尔的声音骤然压紧。
“埃琳娜,奥姆尼科尔内部安防频道刚才更新了一条警报——核心数据保险库的控制终端在非授权时段被激活。他们发现了。你必须马上离开。”
“存储还没完成。还有百分之四十。”
“你没有百分之四十的时间。安保人员已经从B1层电梯间出发了。大概——六十秒。”
埃琳娜盯着屏幕上的进度条。百分之六十一。百分之六十七。百分之七十三。脚步声越来越近,已经能听到门外走廊里安保人员的对讲机电流声。
百分之八十八。百分之九十四。
门禁读卡器发出了识别音——有人在外面刷卡。百分之九十八。门锁弹开的那一刹那,进度条跳到了百分之百。
埃琳娜拔出存储卡,一把抓起桌上的工具包,转身朝通风管道入口跑。她的膝盖撞在了服务器机柜的角上,钝痛从骨头传到脑门,但她没有停。她把存储卡塞进嘴里,用舌头压在上颚——这是她最后的备份。如果她被抓住,他们可以拿走她口袋里的所有东西,但没有人会搜她的口腔。
她在金属隔板合上的一瞬间钻进了通风管道。隔板的缝隙里透进一线光,然后被两个安保人员的影子遮住了。
“终端还开着。”其中一个安保说,“屏幕上显示访问了加密文件夹。文件被复制了。”
“通知德拉蒙德的办公室。让他们查——”
“德拉蒙德不在。他在法院。”
短暂的沉默。然后是第三个声音从安保的对讲机里传出来,是一个埃琳娜从未听过的低沉男声。
“不用追。让她走。她把瓦尔科的签字带出去了。这比我们预想的更有用。”
埃琳娜在管道里停了一秒。那个声音知道她带走了什么。那个声音不打算追她。
耳机里维吉尔的声音又响了起来。“埃琳娜,你还在吗?”
“在。”
“刚才奥姆尼科尔安保系统里出现了一条日志——你的入侵警报被手动解除了。解除人的权限代码是最高管理员级别。代码不属于奥姆尼科尔任何在职员工。我追不到源头。但解除的时间是在你离开保险库之后三秒。”
埃琳娜在黑暗的管道里慢慢往前爬。她的嘴里含着存储卡,能尝到金属和塑料的味道。她脑子里反复回放着瓦尔科昨晚对克罗斯说的那句话——“如果源代码里有明确的手动调权指令,最高法院就可以裁定倾向性放大模块违宪。”
瓦尔科的名字在源代码上。在审核批准人那一栏里,她的签名和缪拉、凯恩并列在一起。如果这份代码被提交到最高法院,她将不是以举报人的身份出现,而是以被举报人的身份。她说的每一句话都会被重新审视——她昨晚和克罗斯的秘密会面、她今天上午撤走联络官的命令、她为保险库降级安保级别的操作——所有这些都将被重新解读。不是良心发现。是证据销毁失败后的止损操作。
但她也确实把门打开了。没有她,埃琳娜拿不到这份代码。
“维吉尔。瓦尔科昨晚对克罗斯说的每一句话,你那里都有录音吗?”
“有。克罗斯全程录了音。”
“保存好。以后会用到。”
埃琳娜爬到通风管道出口,从设备间墙上那个方形口子里翻了出来。她浑身是灰,左腿膝盖上渗着血,但她的手是稳的。她从嘴里取出存储卡,用衣角擦干净,装进一个防静电密封袋,塞进工作服内侧的拉链口袋。
耳机里传来维吉尔的声音,这次背景里多了一阵嘈杂。
“法庭那边——伊顿法官在五分钟前宣布了初步裁定。裁定内容刚刚公布。”
“怎么说?”
“物证真实性——部分采纳。巡逻日志原件和纯序协议副本被认定为具有表面真实性,可以作为听证证据。但拘留登记表复印件因为保管链中断问题,被认定为‘暂不具备独立证明力’,需要补充独立鉴定。帕诺普蒂孔系统证据效力——伊顿裁定,埃尔林格案原审中单独依赖算法评估加重刑期的做法构成程序瑕疵,但她没有裁定违宪。她说,需要看到‘能证明算法偏见系蓄意设计而非技术缺陷的直接证据’,才能进入违宪审查。”
埃琳娜靠在设备间的墙上,把手按在存储卡所在的拉链口袋上。
“她要的直接证据,在我手上。”
“那就送过来。法庭还在开庭。索恩已经申请了补充证据递交动议。伊顿给了他一个小时的窗口——截止时间是上午十一点。现在是十点三十七分。你还有二十三分钟。”
埃琳娜推开门,走进了停车场。
就在她走向那辆灰色送货车的同一时刻,联邦情报局副局长办公室里,莉迪亚·瓦尔科正站在窗前。她的电脑屏幕上打开着两份文件——左边是奥姆尼科尔核心数据保险库的访问日志,显示文件“倾向性放大调节器_源代码及修改日志”已于今日上午十点十三分被成功复制。右边是一份草拟中的辞职信,收件人是新奥林匹亚共和国总统。标题栏只有一行字:事由:七年前对纯序协议及其相关技术项目的审核存在重大疏漏。
她没有写“参与”。她写的是“疏漏”。
她的手指在键盘上悬了一会儿,然后删掉了“疏漏”,改成了“参与”。
她盯着这两个字看了很久。窗外,奥姆尼科尔大楼顶那颗蓝色眼睛在日光中缓缓旋转。她按下打印键,签了名,把信放进一个标着“人事档案室”的信封里。然后在信封上贴了一张便利贴,便利贴上只有一行字——此信不因任何人的指令而写。由本人自愿提交。
她按下内线电话的按钮。助理接了起来。
“请通知总统办公室。联邦情报局副局长莉迪亚·瓦尔科请求在今天下午进行紧急面谈。事由:涉及七年前联邦司法部与奥姆尼科尔公司之间关于帕诺普蒂孔系统的交叉权限违规问题。”


暂无评论,来抢沙发吧!