2015年3月,诺瓦市刚结束一场罕见的倒春寒。
融雪从屋顶的冰挂上滴落,砸在防火梯的铁皮上,发出规律而清脆的响声,像一只走不准的钟。
乔治·迈尔斯在他位于松树谷社区的独栋车库里被发现时,已经是死后第三天。
发现他的人是每周四来收垃圾的清洁工。他注意到车库侧门虚掩着,一股甜腻的气味从缝隙里渗出来,混合着机油和某种更沉重的东西。清洁工后来对警察说,他在推开那扇门之前就已经知道不对劲了——“那种味道,一辈子都忘不掉。”
诺瓦市警局的巡警最先到达现场。随后是刑事调查科的探员,再然后是法医和现场鉴证人员。红蓝相间的警灯在安静的社区里旋转,把邻居们从午后的倦怠中惊醒,他们穿着睡袍和拖鞋站在草坪上,伸长脖子,像一群被火光吸引的飞蛾。
卡勒姆·里德探员是在下午两点十七分到达现场的。
他今年三十四岁,在诺瓦市警局网络犯罪科工作了六年,按理说不该出现在这里。松树谷的案子是典型的死亡调查,归刑事调查科管辖,和网络犯罪扯不上关系。
但他还是来了。
因为两个小时前,局里的内网服务器收到了一封邮件。
邮件的发送时间精确到毫秒——下午两点整,与乔治·迈尔斯的推定死亡时间窗口的终点几乎重合。发件人使用的是一次性加密邮箱,路由经过了至少六个国家的跳板节点,追踪难度极高。
邮件正文只有一行字:
“第一个。”
附件是一个加密压缩包,解压密码写在邮件末尾。卡勒姆输入密码后,屏幕上弹出一份整理得如同法律卷宗般严谨的PDF文件。
文件的标题页写着——
“正义铁锤:网络暴力记录归档。”
下面是一个名叫乔治·迈尔斯的人在“真相哨兵”论坛上发布过的所有评论,共计四百七十三条,时间跨度从2003年10月到2006年4月。每一条评论都被标注了发布日期、时间戳、以及与之形成对照的受害者信息——那些被“正义铁锤”点名攻击过的人,姓名、住址、职业,以及他们在被曝光后遭受的后果。
其中第十一页,用红色边框单独框出。
霍普·卡特。
评论内容:“挖出他的家人。这些人必须社会性死亡。”
霍普·卡特于2003年10月17日凌晨从哨兵塔公寓三十七层坠落身亡。三天后,他的妹妹艾琳·卡特从诺瓦大学退学,其后下落不明。
卡勒姆盯着这行字看了很久。
他是2007年才调到诺瓦市的,六年前那桩程序员坠楼案对他来说是档案柜里泛黄的旧闻,不是记忆里的伤疤。但他知道这桩案子——局里老一点的同事提起过,说那是一起“舆论杀人”的经典案例,然后啜一口咖啡,摇摇头,继续处理手上的公文。
此刻,这些旧闻正以一种他从未见过的方式重新组装起来。
文件末尾附了一张照片。
照片拍的是一辆黑色奔驰轿车停在封闭的车库里,引擎处于怠速状态,排气管被一根软管连接到了车厢后窗的缝隙。驾驶座上的人影模糊,只能看清轮廓。
和松树谷现场的照片一模一样。
“谁发现的?”
卡勒姆收起手机,走向站在警戒线旁边的巡警。
“清洁工。每周四收垃圾。”巡警是个年轻人,警徽擦得锃亮,但脸色不太好看,“他已经吐了两回了。”
“现场有什么异常?”
巡警翻开记录本:“车库门从内部反锁,没有破门痕迹。车内没有挣扎迹象。死者衣着整齐,安全带系着。法医初步判断是一氧化碳中毒,死亡时间大约在三天前。”
“自杀?”
“看起来是这样。但——”巡警犹豫了一下,“我们在车里发现了这个。”
他递过来一个证物袋。
袋子里装着一部智能手机,屏幕碎裂,但仍在运作。手机背面贴着一张手写便签,字迹工整,像会计做的账本:
“我只是发表了我的看法。他有罪,他活该。”
没有署名。
但便签的右下角画了一个小小的符号——两个重叠的三角形,构成一个六角星的轮廓。
棱镜。
卡勒姆的手微微收紧。
“这是原件?”
“对,就贴在手机背面,压在死者右手下面。”
卡勒姆把证物袋还给巡警,走向车库。法医正在将尸体装袋,橡胶手套和塑料布摩擦的声音在狭小的空间里格外刺耳。他看见乔治·迈尔斯的侧脸——浮肿、青紫,但依稀能辨认出生前那副养尊处优的轮廓。
奥克森集团市场部副总监。年薪四十万联邦克朗。松树谷独栋别墅。社交媒体十万粉丝。
开着奔驰死在自家车库里。
卡勒姆退出车库,站在门外的草坪上深吸一口气。三月的风还很凉,带着融雪的湿气,吹在脸上让人清醒。
他拿出手机拨通了局里技术分析部的电话。
“帮我查一封邮件的来源。加密通道,多层代理。我会把原始数据发给你。”
“又要大海捞针?”对方的声音有些无奈。
“这次不一样。”卡勒姆望着远处邻居们尚未散去的围观人群,他们的手机举在半空中,拍摄,上传,配文——“我家隔壁出事了,天哪。”
“发件人没想藏。”他说。
技术分析部用了四个小时给出了初步报告。
那封邮件的路由轨迹横跨十一个国家的三十七个服务器节点,从诺瓦市本地的一个匿名Wi-Fi热点出发,经过北欧、东南亚、南美的多个中转站,最终绕回诺瓦市警局的服务器。
“这不是普通黑客的手法。”技术分析员在电话里说,语气里带着一种罕见的敬意,“每一条路径都经过了精心设计,不是随机跳转,而是一种——怎么说呢——一种算法优化后的最优路径选择。就像有人在网络层上铺了一条高速公路,只为了送这一封信。”
“能追踪到源头吗?”
“不能。至少目前的工具做不到。”对方顿了顿,“但我可以告诉你一件有意思的事。”
“说。”
“这种路由优化逻辑的底层框架,和我们数据库里一份被封存的代码高度相似。”
卡勒姆握住方向盘的手紧了一下。他的车停在警局地下车库,四周只有通风管道的嗡鸣声。
“哪份代码?”
“2003年的一桩旧案证物。一个叫霍普·卡特的程序员写的加密算法,代号‘棱镜’。”技术分析员的声音从听筒里传来,像穿越了十二年的回声,“卡勒姆,写这封邮件的人,用的是死人的代码。”
通话结束后,卡勒姆在车里坐了很久。
地下车库的灯光是惨淡的荧光白,照在挡风玻璃上反射出他自己的脸。他今年三十四岁,未婚,生活被案件和外卖填满,偶尔在深夜加班时想起自己当警察的初衷——那是一个已经被时间和现实磨得模糊的念头,隐约与“保护”和“公正”有关。
他把手伸向副驾驶座上的档案袋。
那是他从旧案档案室调出来的霍普·卡特坠楼案的原始卷宗。档案管理员花了半个小时才找到它,上面的灰尘厚得可以用手指写字。
卷宗封面标注:2003-10-17,哨兵塔公寓,死者霍普·卡特,男性,二十六岁。
初步调查结论:自杀。
但卷宗的最后一页夹着一张手写便条,来自当年的主办探员:
“死者在坠楼前三小时曾向第七巡回上诉法院提交紧急听证申请,被驳回。死者在死前四十八小时内持续遭受大规模网络攻击,涉及论坛ID超过三千个。本案存在明显的舆论胁迫因素,但因缺乏相关刑事法规,无法立案追究。建议封存。”
便条的日期是2003年11月2日。
霍普·卡特死后第十六天。
卡勒姆把便条翻过来,背面还有一行字,墨迹比正文更淡,像是在犹豫了很久之后才加上去的:
“我见过很多死人。这一个让我睡不着觉。”
签名潦草得几乎无法辨认,但卡勒姆还是认出了那个名字——弗兰克·莫罗,诺瓦市警局的前任警探,三年前因癌症去世。
卡勒姆深吸一口气,发动了汽车。
在驶出地库之前,他的手机再次震动。
一封新邮件。
发件地址和下午那封完全不同,但加密逻辑如出一辙。邮件内容更加简短,只有一行字和一个附件。
“第二个目标将于72小时内完成。你可以选择旁观,也可以选择阻止。无论哪种选择,都改变不了结局。但我建议你看完这份资料再做决定。”
附件是一个新的加密压缩包。
文件名是——“诺瓦之眼”。
卡勒姆的手指悬在屏幕上方,没有立即点开。
他想起今天下午在现场看到的那张便签——“我只是发表了我的看法。他有罪,他活该。”
他也想起卷宗里那张霍普·卡特的照片。二十六岁的年轻人,瘦削的脸,眼睛里有光,穿着洗得发白的格子衬衫,站在某个科技展的展台前,双手举着一块印着“棱镜”标志的展板。
那张照片拍摄于2003年9月。
距离他从三十七层坠落,还有不到四十天。
卡勒姆点开了附件。
屏幕上弹出一份与下午结构完全相同的PDF文件,封面标题写着——
“诺瓦之眼:网络暴力记录归档。”
在诺瓦市的另一端,艾琳坐在她位于旧工业区的工作室里,三块曲面屏幕环绕着她,每一块都亮着。
左边的屏幕显示着“镜像”算法的实时运行状态——两亿七千万个数据节点正在被持续抓取和分析,来自全球超过四十个社交媒体平台。每一个匿名账户的真实身份,都在算法面前无所遁形。
右边的屏幕显示着诺瓦市警局内网的后台数据。那封邮件被打开的瞬间,IP地址、设备型号、阅读时长、滚动深度、附件下载次数——所有信息都在她的监控之下。
中间的屏幕是空白的。
只有一个小光标在左上角闪烁。
她还没有想好要在那上面放什么。
或许什么都不会放。或许有一天,当所有该完成的事情都完成了,她会在这个空白页上写下最后一个名字——她自己。
然后回车。
窗外的诺瓦市沉在夜色里。远处金融区的写字楼还亮着几扇窗,像夜航船上的灯火,照不亮任何东西,但证明有人还没睡。
艾琳端起咖啡杯,浅啜一口。
咖啡已经凉了。
她想起今天是3月12日。十二年前的今天,霍普带她去了诺瓦湖边的游乐场。她坐了三遍过山车,霍普陪她排了一个小时的队,全程面不改色。但当过山车俯冲的那一刻,她听见他在旁边小声说了一句——
“艾琳,闭眼。”
她没有闭。
所以现在,她也不会。
“镜像”算法的界面上,第二个目标的资料正在自动生成。
ID:诺瓦之眼。
真实身份匹配进行中。
进度条缓慢推进,像一颗缓慢但坚定地穿过大气层的子弹。
屏幕上闪出一行系统提示——
匹配度:94.6%。
艾琳把杯子放下。
陶瓷与桌面碰撞,发出一声轻响,像某种仪式的开场。


暂无评论,来抢沙发吧!