16. 同床异梦

苏晴在周思危出门之后的第一个小时里做完了所有她该做的事。她把阳台上最后一件晾干的衣服收进来,叠好,按照颜色深浅分摞放进衣柜。她把厨房台面上的咖啡渍擦干净,把洗碗机里烘干了的碗碟一件一件取出来归位。她把客厅茶几上散落的案件材料整理好,用夹子分门别类夹好,放进书房的抽屉里。然后她坐在沙发上,双手平放在膝盖上,对着空白的电视屏幕坐了很久。

她不是没事可做。她是知道接下来要做的事太大了,大到她需要先把所有琐碎的日常都处理干净,像是在出海之前把岸上的缆绳一根一根系牢。

下午四点,她的手机弹出了两条几乎同时到达的消息。第一条来自纽斯特里亚政府内务部档案科——她的公民档案查询申请审核通过,附件是一份扫描版的书面证词原件。程露的证词。七年前程露在临终前用钢笔亲手写下的那封信,信纸边缘已经泛黄,但字迹仍然清晰有力。信的最后一段写道:“苏晴对此事毫不知情。她所签署的单据被我以工作交接名义夹在常规报销材料中,她在签字时没有看到原始凭证。全部责任在我本人。恳请有关部门据实核销对苏晴的一切调查记录。”

苏晴把这封信反复读了四遍。第一遍她哭了,没有声音,只是眼泪无声地从眼眶滑落,滴在手机屏幕上,正好落在“毫不知情”四个字上。第二遍她止住了眼泪,开始注意信纸右上角的档案归档编号和日期戳——程露没有骗她,这封信确实在她死后被寄到了内务部,也确实被归档了。只是从来没有人通知过苏晴。第三遍她开始用理性分析这封信的结构和措辞,像一个刚刚在风暴里被抛上甲板的溺水者开始检查自己的救生衣够不够结实。第四遍她只是安静地看着,然后把手机放在茶几上,对着窗外灰白的天光长长地呼出了一口气。这口气呼了足足十几秒,像是把七年的重量从肺里一点一点挤出来。

第二条消息是周思危发来的。没有多余的字,只有一张照片——一张纸条,上面写着渡兰手写的两个名字和两个地址。下面配了一行字:“许维远未接触的最后两个样本。我已确认渡兰身份,她没有逃。今晚之前要把这两个人纳入保护范围。你能帮我吗?”

苏晴没有回“好的”或者“可以”。她回的是:“给我其中一个地址。”

这是她从许维远案里学到的最重要的一课——侧写是一门被动的技术,而行动是唯一的出路。她在过去三个月里被许维远当作一座桥,被动地承受了勒索、欺骗和数据植入。她在这几天里把桥拆了,把自己的秘密全部摊开在周思危面前,把七年的恐惧用一次查询终结掉。现在她不想再当任何人的桥了。她要自己走过去。

周思危回复了两个字:“小心。”后面附了其中一个地址的详细信息——滨海新区望海路幸福里幼儿园,园长顾敏芝,四十二岁,离异,独居,在近情上注册的账号已注销,但注销前曾被一个高匹配度账号锁定过。江一苇的技术筛查显示,锁定顾敏芝的那个账号的注册IP与许维远使用的跳板服务器属于同一个地址段。也就是说,许维远在被捕前已经把顾敏芝纳入了目标范围,只是尚未开始深度接触。另一个地址在港城东区,是一所中学的体育馆,保护对象是体育老师秦兆林。周思危自己去了那边。

苏晴换了件深灰色的风衣,把手机充满电,带上一只便携充电宝和一支防身用的微型报警器——那是周思危三年前送她的生日礼物,她一直挂在钥匙扣上,从未用过。她把程露的证词打印了一份,折好放进口袋里,然后出门打车,穿过滨海新区傍晚时分的车流,朝望海路方向驶去。

幸福里幼儿园坐落在望海路中段一片老住宅小区的腹地,周围是六层的旧式居民楼,楼与楼之间拉满了晾衣绳和爬山虎。台风过境后的清理工作还没做完,小区里到处是堆在路边的断枝和碎花盆,几个穿蓝色工装的清洁工正用铲子把淤泥从人行道上一锹一锹地铲进手推车里。幼儿园的铁栅栏门关着,门口的值班室里亮着一盏日光灯,照出一个中年保安伏在桌上打盹的剪影。苏晴在门口站了片刻,观察了四周的环境——一条死胡同,两侧是居民楼的背面,没有临街商铺,入夜之后几乎没有路人。这种地形对于需要静默接近的人来说是理想选择,对于需要呼救的人来说却是绝境。

她按了门铃。保安从瞌睡中惊醒,揉着眼睛走过来。苏晴亮出了周思危提前用电子版发给她的一份文件——网络安全署技术侦查科出具的潜在网络安全风险告知函,上面盖着专案组的章,措辞模糊但官气十足,大意是要求相关单位配合调查一桩涉及个人信息泄露的案件。保安看了半天,最终还是打开了侧门,领着她穿过操场走向行政楼。

顾敏芝在二楼园长办公室里批改教案。她看起来比实际年龄更年轻,穿着一件素色的针织开衫,头发用发夹整齐地夹在脑后,桌面上摆着一盆长势良好的绿萝和一叠手写的教学观察记录。苏晴进门的时候,她抬起头,目光里有困惑但没有抵触,客气地请苏晴坐下,给她倒了一杯温水。

苏晴没有绕圈子。她把许维远案的基本情况做了一版脱敏处理过的简述——她略过了死亡的细节,略过了名单的来源,只保留了一个核心事实:有一个利用交友软件精准匹配受害者的犯罪者,曾经用技术手段锁定了顾敏芝的账号,虽然目前该犯罪者已被控制,但不能排除其同伙仍在活动。她建议顾敏芝在未来两周内暂停使用任何社交软件,不要单独前往偏僻地点,一旦发现任何异常情况立刻联系她。

顾敏芝听完之后沉默了很久。窗外的操场上有两个晚归的幼儿在荡秋千,笑声穿过玻璃传来,清脆而毫无防备。顾敏芝站起来走到窗边,背对着苏晴,声音很轻,像是自言自语:“我以为是我自己有问题。”

“什么?”苏晴没有听懂。

“三个月前我在近情上匹配到一个人。聊得特别好——好到不真实。他能说出我每天都在想什么,知道我在幼儿园被家长投诉之后躲在办公室里哭,知道我离婚之后最难过的是周末一个人回家。我以为是缘分。后来他突然消失了,账号注销了,什么都没留下。我以为是我做错了什么,是我说错了话,是我太着急了。”顾敏芝转过身来,眼睛红了,但没有哭,“从那以后我一直在想——是不是我太普通了,普通到连一个陌生人都懒得骗我太久。我从来没想到……他是真的在骗我。”

苏晴站起来走到她面前,把口袋里那张程露证词的打印件掏出来,放在顾敏芝桌上。“我也经历过同样的事。不是因为你有问题,是因为他太擅长。他用的是被精密设计过的心理操控技术,受过专门训练的人都不一定扛得住。你能在他启动深度接触之前就保持警惕,已经比大多数人都强了。这页纸上写的是我七年都没敢看的真相。把它看完——然后你就不用再怀疑自己了。”

顾敏芝低头看着那张泛黄的纸,手指沿着墨迹一行一行慢慢滑过。当她读完最后一行的时候,她的眼泪终于掉了下来,但她笑了——那种笑不是在否认痛苦,而是在痛苦里面忽然找到了一扇被忘记打开的窗户。她把证词还给苏晴,用手指抹了一下眼角,说了一声谢谢。然后她从办公桌抽屉里拿出一个封好的牛皮纸信封,递给苏晴。

“我不知道这个东西有没有用。那个账号消失之后,我总觉得不对。我把我们之间的聊天记录全部截图打印了出来,想留着当证据。我还做了一个对比表,把他问我的问题和我曾在其他平台上公开过的个人信息做了对照。我发现他知道的东西,远比我公开过的多。我本来想去报警,又怕是自己太敏感。你可以拿去看。”

苏晴接过信封,手指触碰到牛皮纸的粗糙表面时,心里涌起了一种奇异的触动——顾敏芝在被欺骗之后不是崩溃,不是自我怀疑,而是默默地做了取证工作。她也是桥。不是许维远意义上的桥,而是另一种——在被击垮之前用最后一点力气搭出了一条通往真相的路。

从幸福里幼儿园出来的时候,天已经完全黑了。苏晴站在小区门口的路灯下给周思危打了个电话。电话接通的瞬间,她听到对面背景音里有风声和远处货运码头的汽笛声,周思危应该还在外面。她把自己这边的情况简短做了汇报——顾敏芝安全,情绪稳定,主动提供了聊天记录和比对表格,可能包含许维远尚未销毁的额外数据。

周思危听完之后沉默了片刻,然后说了一句她没想到的话:“今天有两个女人被从名单上救下来。一个是你从幼儿园找回来的,另一个是我在体育馆找到的。秦兆林——他说他已经写好了辞职信,准备从当了十二年的体育老师岗位上离开,因为他觉得这个职业已经没有人在乎他了。我跟他聊了半个小时,他把辞职信撕了。”

“所以不是所有人都会掉下去。”苏晴靠在路灯柱上,海风吹着她的头发,声音在电话里显得比平时更软一些。

“不是所有人。但关键是有人在他们掉下去之前拉了一把。你在幼儿园做的就是这样的事。”周思危的声音顿了一下,然后加了一句,“回家吧。今晚我有个想法要告诉你。”

苏晴挂了电话,拦了一辆出租车回家。在车上她把顾敏芝的信封打开,借着手机的光线快速浏览了几页聊天记录。顾敏芝做的比对表格极其详细——她把自己在社交媒体上公开过的每一条信息都列在表格左边,右边对应列出那个神秘账号在聊天里主动提及的内容。公开信息只占了对方掌握信息的大约三分之一。剩下的三分之二,包括她的通勤路线、周末常去的超市、甚至她公寓楼下门禁的刷卡方式,都是非公开的。

表格的最后一页,顾敏芝用红笔圈出了一行她在聊天记录里反复翻看却始终想不通的对话。对方问过她一个问题:“你有没有想过,如果你消失了,第一个发现的人会是谁?”顾敏芝的回答是:“大概是我幼儿园的保安吧。”对方回了一句话,被顾敏芝用红笔画了三个重重的圈——

“保安每天几点换班?”

这不是闲聊。这是踩点。

苏晴把信封装回包里,后背在出租车座椅上挺直了。她意识到自己刚才可能比预想的更接近危险——如果许维远没有被捕,如果那个账号还在继续接触顾敏芝,那么今晚的幼儿园,在保安换班后的那个空窗期里,也许就是另一间被精心布置过的教室。而她站在那个空荡荡的操场上,刚刚把最后一个学生提前从教室里拉了出来。

出租车停在公寓楼下。苏晴乘电梯上楼,打开家门,发现书房里亮着灯。周思危已经回来了,正坐在折叠桌前,面前摆着三台笔记本电脑和一杯没冒热气的速溶咖啡。他听到开门声,回过头看了她一眼,那一眼里有种她已经好几天没在他身上看到过的东西——不是疲惫,不是警觉,而是一种被某个新想法点燃的专注。

“你刚才说有个想法。”苏晴脱下风衣挂在衣架上,走到他身边,拉开另一把椅子坐下。

“渡兰今天问了我一个问题——‘在你被剥夺一切权限之后,为什么还要替你明知道是错的程序去保护受害者?’”周思危把咖啡杯推开,手指在桌沿上轻轻敲着,“我回答她,我分得清制度和制度里的人。但她说这句话的时候,我注意到一个细节。她的用词。”

“什么用词?”

“她用的是‘替你明知道是错的程序’。她不是在问我为什么保护受害者,她是在问我——为什么保护程序。在她的认知框架里,陈茉、方旭、甚至她自己的妹妹渡苹,都是程序的受害者。程序不是某一个人,程序是一套流程、一堆规则、一群按规则办事的人。而我已经被这套程序停职了——我就是程序背弃我的证据。所以她觉得我会倒戈。不是因为我愤怒,而是因为我终于亲身体验了程序的荒谬。”

“但你没有。所以她把名单给了你。”苏晴的声音里夹着一丝不易察觉的骄傲。

“她给了我名单,但我不确定那是合作还是新的测试。”周思危把笔记本电脑屏幕转向苏晴,屏幕上显示着近情后台的一个数据分析界面。他在今晚回来之后用顾敏芝和秦兆林的公开与非公开信息做了一个对比模型,把许维远接触过的所有目标都做了同样的比对。结果是一个让他无法释怀的发现——每一个受害者被掌握的隐私数据中,都有一小部分无法用教育部的数据库泄露来解释,也无法用社交媒体爬取来解释。那些数据的精准度和私密度,更像是直接从受害者本人的设备里流出的。

“许维远有一个间谍软件投放能力,这个我们早就知道了。”周思危指着屏幕上的一组对比数据,“但你看这里——受害者手机被植入间谍软件的时间节点,和他们收到渡兰名单的时间节点,不完全重合。有些人被植入的时间早于名单交付时间。这意味着间谍软件的投放可能不是许维远一个人在做。或者说——渡兰给他的不只是一份名单,还有名单上每个人已经被植入间谍软件的设备访问入口。”

“她是研究员,不是黑客。”苏晴皱起眉头。

“但她可以在不需要自己动手的情况下完成这件事。她研究教育系统十年,她知道哪些外包IT服务商负责学校的网络安全维护,她知道哪些供应商的系统存在后门,她知道哪些人手里有她想要的权限。她只需要把名单交给一个人,对那个人说——‘这些人需要被关注’。然后那个人替她做技术执行。”

“那个人就是‘渡口’。”苏晴说出这个代号的时候,客厅的灯光好像在一瞬间暗了一瞬。窗外有海风吹动了未关紧的窗扇,木框轻轻磕了一下,发出低沉的叩击声。

“渡兰以为自己是‘渡口’。许维远也以为她是。”周思危把电脑合上,靠在椅背上,目光穿过书房的门框落在客厅玄关处那件苏晴刚刚挂好的灰色风衣上,但焦距显然不在那里,“但她今天把名单给我之前,说了一句话。她说‘我不知道他下一步会怎么行动’。她说‘他’。她用的是第三人称。”

周思危转过脸看着苏晴,书房落地灯的暖黄色光线下,他的眼睛里有一个正在成型但尚未完全浮出水面的轮廓。

“渡兰不是‘渡口’。她也是桥。而真正的‘渡口’,是那个替她植入间谍软件的人。她一直以为自己在和许维远合作,实际上,她也被关在这个实验的另一间教室里。而她到现在都不知道教室的门是谁锁上的。”

苏晴把手放在他的手臂上,用力握了一下。窗外港城的海风在夜色里愈加强劲,把远处港口的集装箱起重机吹得发出低沉的金属呜咽声。那个声音穿过海面、穿过防波堤、穿过滨海新区的街道和住宅楼,一直传到这间亮着灯的公寓里,像一声被拉长的、尚未结束的课间铃响。

本章评论(0)

暂无评论,来抢沙发吧!

我来评论

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