梅丽莎·哈特把车停在老码头区第三号仓库对面的街角时,港湾市正下着一场连绵的冬雨。雨丝在路灯下斜织成半透明的帘幕,把整条街的铁皮屋顶和锈蚀起重机都蒙上了一层油亮的水光。她熄掉引擎,没有立即下车,而是先透过雨刷间歇扫过的扇形视野观察那座仓库——编号C-19,三层混凝土结构,外墙面爬满铁锈色的藤蔓植物,唯一亮着的是一楼卷帘门旁边那盏嗡嗡作响的日光灯管。
坐标就是这里。卡洛琳留在门垫下那张便条上的数字,精确到小数点后四位。梅丽莎从副驾驶座拿起一个黑色帆布袋,里面装着强光手电、橡胶手套、一台便携式紫外灯,还有一把——她犹豫了一下——一把多用途扳手。她不确定自己会用上哪件工具,但她父亲教过她:调查员下车时总该带齐能开锁和能照明的两样东西。
雨声在卷帘门外变得稠密。梅丽莎绕到侧墙,发现一扇带推拉栓的防火门,门框上的油漆已经剥落了大半,露出底下泛白的金属。她试着推了推,门没锁,只是被一根插销卡住了半截。她侧身挤进去,帆布袋蹭过门框边缘,带下一片碎漆。
仓库内部比她预想的干净。地面是磨得光滑的水泥,空气里有一股淡淡的机油和纸箱灰尘混合的气味。照明只有头顶几盏间隔很大的应急灯,暗处堆着十几个半透明的塑料储物箱,箱体上贴着标签,写着年份和编号——最早的是2019,最新的到2023年秋天。
梅丽莎打开手电筒,光束扫过最近的几个箱子。标签上的内容全是“技术文档备份”“旧服务器日志”“会议录音存档”,看起来像是星云数据某次搬迁时遗留的物资。她蹲下来打开一个箱盖,里面整整齐齐码着文件夹,封皮上的公司logo还是2018年之前的旧版。她随手翻了几页,全是正常的技术会议记录和代码审查笔记,没有任何财务痕迹。
她站起来,往仓库纵深走去。光束扫到尽头时,她看见一张老旧的办公桌,桌面上只有一台积满灰尘的台式显示器,键盘上落着一层灰白色的粉尘,像是建筑材料的细末。桌子底下放着一个铁皮文件柜,上锁了。
梅丽莎用那把扳手撬了一下柜锁,锁栓弹开时发出一声脆响。她拉开最上层抽屉,里面是空的。第二层也是空的。第三层——她抽出来一半就停住了。
抽屉里躺着一只白色陶瓷咖啡杯,杯底朝上,杯沿扣着一张叠成方形的银行对账单。她小心翼翼地把杯子拿起来,杯底果然粘着一片暗色的异物——像是一支黑色宝珠笔的笔盖,用透明胶带固定在上面。笔盖里没有笔芯,但笔盖内侧有一个微型USB接口,金属触点被一层薄蜡封着。
梅丽莎屏住呼吸。她把笔盖对着手电光看了几秒,然后装进随身带的防静电袋里。接着她展开那张对账单,是一份从离岸账户发出的转账记录,日期是2022年6月15日——虚假确认函的前两天。收款方是一个她没见过的公司名:Crimson Tide Holdings,金额是二十八万美元。备注栏写着一个潦草的手写体缩写:“工具费”。
工具。梅丽莎想到了西奥·阮的镜像签名工具。二十八万,足够买一套定制级的伪造系统了。
她刚把对账单折好放进帆布袋,仓库深处传来一声极轻的碰撞声,像是金属被碰倒。梅丽莎的手电立刻转向声音来源——光束在约二十米外的一根承重柱后面扫到一个轮廓。有人。那人影在原地停留了一秒,然后迅速朝仓库侧门方向移动。
“站住!”梅丽莎喊了一声,但没有追。她快速扫视周围,把文件柜第三层抽屉抽出来整个端走,连同那只咖啡杯一起塞进帆布袋,然后朝反方向、正门卷帘门的方向跑。她跑到门口时听见身后传来一串急促的脚步声,那人在追她,但速度不快,像是不想弄出太大动静。
她拉下卷帘门的应急手柄,门哗啦一声卷起一半,她猫腰钻出去,雨水立刻浇透了她的肩膀。她没有回头,直接跑向车子,把帆布袋扔进副驾驶,发动引擎。后视镜里,她看见一个人影站在卷帘门边缘,穿着深色连帽衫,帽檐压得很低,雨幕让那人的面孔变成一团模糊的灰色。人影没有追出来,只是站在那里看着她倒车、掉头、汇入雨夜的车流。
直到车开过三条街,梅丽莎才注意到自己握着方向盘的双手在发抖。她不是害怕那个追赶者——她害怕的是那个追赶者出现的时间点。卡洛琳失踪后,仓库应该处于无人看管状态。但那人显然知道她会来。要么是卡洛琳本人,要么是卡洛琳把信息传给了另一个人,一个正在保护这份证据的人。而如果那是卡洛琳,她为什么不直接现身?
梅丽莎在一个红灯前停下来,拿起防静电袋里的笔盖对着车内灯端详。那支笔的笔身部分——也就是能装墨水和笔芯的部分——不在咖啡杯底下。笔盖只是USB存储外壳,里面存的东西需要读取设备才能查看。她需要一台安全的离线电脑。
她拨出一个号码。响了四声后,对方接起。
“霍奇斯先生,我是哈特。我拿到了一个可能是证据的电子存储装置,你那边方便今晚就做数据提取吗?”
埃尔文·霍奇斯的声音从免提里传出来,带着老年人特有的沙哑喘息:“几点?”
“一个小时后。”
“来我实验室。后门密码没换。”
梅丽莎挂断电话,踩下油门。雨刮器在挡风玻璃上疯狂摆动,把港湾市的霓虹灯影切割成流动的碎片。她想起亚历克斯在探视区最后对她说的那句话——“问西奥·阮,那个客户有没有给过他一支笔。”她还没机会问西奥·阮,但笔已经找到了。或者说,笔盖找到了。
与此同时,在联邦拘留中心另一栋楼的探视隔间里,西奥·阮正面对一个他不认识的女人。那女人穿一件邮政蓝色的制服,戴着金丝边眼镜,胸口别着一枚访客证,上面印着“联邦公设辩护人办公室”的字样。但她开口第一句话就让西奥的脊背绷紧了。
“阮先生,我知道你给某个客户做了镜像签名工具。我不想知道那个客户是谁——我只需要你确认一件事:那套工具的输出文件里,有没有嵌入一个隐藏的时间戳水印?”
西奥愣了两秒。他确实在工具里加过一个溯源水印,用来保证自己留下的后门——他怕客户赖账不付款,也怕自己被当作最终替罪羊。但他从没告诉过任何人。“你怎么知道?”
那女人微微一笑。“因为你的源代码里有一段注释,写的是你的名字缩写。你上传到云端备份时,忘了设置权限。”
西奥的额头冒出一层薄汗。“你是谁?你不是公设辩护人。”
“我是梅丽莎·哈特律师的调查助理。她让我来问你这个,时间不多——你只需要告诉我,水印怎么读?”
西奥咬了咬下唇。隔间内的空气仿佛被抽薄了。“工具生成的每一份签名文件,都在元数据层嵌入了一组坐标。坐标编码的是签名操作的实际IP地址和物理时间戳。如果你能拿到那份文件的原始电子档,用十六进制编辑器打开,偏移量0x7F4到0x800之间——你能找到水印。”
“谢谢你。”女人站起来,把椅子推回原位,“另外,阮先生——你前天在B-307墙壁上写的铅笔字,是谁让你写的?”
西奥的脸色变了。“那不是我写的。”
“什么?”
“墙上的字不是我的笔迹。”西奥的声音忽然变得很轻,像是害怕被隔间外的人听到,“我写过一张纸条给那个姓温的——让他去咖啡杯底下找。但那句话写在墙上,不是我写的。有人模仿了我的字迹。”
女人站在隔间门口,手放在门把手上,停顿了一秒。然后她拉开门走出去,走廊的荧光灯照得她的金丝边眼镜反出一道刺目的白光。
西奥·阮靠在椅背上,盯着那扇重新合上的铁门。他忽然觉得,整个事件里不止一个复制签名的人——还有一个复制笔迹的人。而那个复制笔迹的人,可能一直在看着所有棋子移动。
那晚十一点十七分,埃尔文·霍奇斯的实验室里,他用一台断网电脑读出了咖啡杯笔盖里那个USB接口的数据。里面只有三个文件:一个是空白的PDF模板,文件名是“确认函_模板”;一个是可执行脚本,注释写着“签名注入_v3.2”;还有一个是纯文本文件,里面只有一行数字——
2022-06-17 01:23:47.384 | 192.168.10.12 | 操作源:端口镜像
霍奇斯用他那双老年人特有的、微微颤动的手指指着屏幕上那行字,转过头对梅丽莎说:“这个时间戳,比伪造确认函上的‘签名时间’早了九分钟。而且IP地址是你们星云数据内部网络的网关。这说明签名是在公司内部生成的——而不是温先生声称的‘不记得’。”
梅丽莎盯着那行数字。她的脸色在电脑屏幕的冷光里显得出奇地苍白。“九分钟的时间差……加上端口镜像这个操作源标识——这意味着有人用工具生成了签名,然后把文件发出去的同时,修改了时间戳元数据,让它看起来像温先生在公司里正常签发的。”
“而且,”霍奇斯用干瘦的食指敲了敲屏幕边缘,“这个‘端口镜像’说明操作者不是直接登录系统,而是用旁路嗅探的方式截获了温先生的认证令牌。不需要私钥复制——只需要在他登录内部系统时,用镜像端口把令牌复制一份。”
梅丽莎慢慢坐进椅子里。她想起亚历克斯说过,他经常在深夜登录公司系统处理审批。如果有人在他登录时开了端口镜像……那签名工具根本不需要硬件复制。只需要一次截获,就可以无限期地生成“亚历克斯·温”的数字签名,直到他修改密码。
但亚历克斯从2019年到2024年期间修改过四次密码。
而每一次,都有人在他修改密码后的七十二小时内,通过内部系统重新“激活”了他的电子签章权限。那个激活动作,在后台记录里显示为“系统管理员操作”。而星云数据的系统管理员只有一个——杰森·莫罗自己。
梅丽莎拿起手机,拨了一个被标记为“待查询”的号码。电话接通后,她只说了一句话:“请帮我查一下,星云数据破产前系统管理员最后一次操作电子签章权限的时间。”
电话那头沉默了三秒,然后传来一个中年男人的声音:“稍等……查到了。2024年8月12日,下午四点零三分。操作类型——‘权限重新绑定’。操作者ID:JM-ADMIN。”
梅丽莎放下手机,看向霍奇斯,嘴唇微微张开,却没有发出声音。她脑子里只有一个念头:2024年8月12日,那是亚历克斯·温第一次被联邦税务署传唤问话的同一天。
她在为亚历克斯写第一份辩护状时,翻阅了全部财务记录,发现了一个她当时没太在意的细节。那个日期下午四点零三分,亚历克斯正在税务署的询问室里接受三个小时的面谈,他的手机被要求关机并放在门外。他绝对不可能在那时候执行任何系统操作。
而杰森,作为唯一掌握管理员权限的人,在那个时候重新绑定了签名权限——把亚历克斯的令牌重新挂载到一个新的密钥对下。新密钥对生成的签名,从那天起,全都带着杰森的控制印迹。
窗外的雨小了一些。霍奇斯实验室里的老式挂钟敲响了十一下半。梅丽莎盯着屏幕上的那行时间戳,忽然意识到,她手里的这只咖啡杯笔盖,也许不只是证据——它可能是整座沙盘里唯一一块还没有被移动过的棋子。而杰森·莫罗,显然还没有发现这块棋子已经被抽了出来。
她拿起笔盖,又仔细看了一遍。笔盖内侧除了USB接口,还有一行激光蚀刻的小字,小到需要放大镜才能看清。她凑近灯光,读了出来:
“C.W. 2022.06”
卡洛琳·韦斯特。日期——2022年6月。那支笔,是卡洛琳自己留的备份。她知道杰森做了什么,也预感到自己可能会成为下一个被清除的对象。于是她做了一个连杰森都不知道的副本,藏在了自己咖啡杯底下。
问题只剩一个:卡洛琳现在在哪里?她还活着吗?那支笔的笔身——装有墨水和笔芯的部分——又在哪里?
梅丽莎把笔盖收回防静电袋,封口处贴上带有她签名的封条。她对着霍奇斯说了一句:“把这份数据做成三份副本,分别存在不同的离线介质里。一份留你这,一份给亚历克斯的辩护团队,一份我自己保管。”
霍奇斯点了点头,开始操作。实验室里的唯一声音是硬盘运转的低频嗡鸣和窗外渐歇的雨滴。
而远在十一公里外的联邦拘留所里,亚历克斯·温在牢房的铁栏边,用手指慢慢划着那行从墙壁上抄下来的字——“你的钥匙不是你的”。他现在明白了,钥匙确实不是他的。因为从2022年6月17日那晚开始,他的钥匙就已经被换成了另一套齿轮咬合的替代品。
而他在那件事中,到底是被盗窃者,还是某种意义上的……配合者?这个念头像一根冰锥,刺进了他自我认知最薄弱的那道裂隙。


暂无评论,来抢沙发吧!