第11章 · 双重信号

布鲁塞尔的清晨总是从雾开始的。

伊莎贝尔·克劳斯在早上六点十七分走进办公室,那时候欧盟数字自由委员会大楼的走廊里还没有其他人。自动感应灯在她经过时逐排亮起,淡蓝色的LED光带沿着天花板延伸,像一条条沉默的引导线,把她引向走廊尽头那间朝北的办公室。

她的办公室不大——十五平方米,玻璃隔墙对着内部走廊,百叶窗常年半合。桌面上方有两台显示器,型号相同,品牌相同,甚至连摆放角度都相同。但从物理层来看,它们属于两个完全不同的世界。

左侧那台——她的官方终端——连接着星链的授权网络。所有经过这台设备的流量都被实时记录、审计、存档。欧盟数字自由委员会的IT安全协议要求所有工作人员使用星链认证的终端设备接入委员会内部网络,协议编号 EU-DCF-2054-09-002,标题是《统一通信安全框架》,措辞冠冕堂皇。伊莎贝尔在这台终端上处理所有公开事务:撰写听证会报告、回复委员会同事的邮件、查阅星链提交的合规文件。她知道这台终端上的每一个按键都会被记录——不仅是委员会的内部审计,还有星链层面更高层级的监控。她不在意,因为这台终端上的所有内容都是她准备好被看到的内容。

右侧那台——从外表看和左侧那台毫无区别,同一品牌、同一型号、甚至贴了同样的委员会资产标签。但内部完全不同。这台终端的网卡被替换过,替换的是一块不记名采购的、经过硬件级改造的千兆以太网卡,它不通过星链的网关连接互联网——它连接的是委员会大楼地下室一根没人记得的旧光纤,那根光纤沿着布鲁塞尔下水道系统分支出去,最终接入一家看似已经倒闭的电信公司在十五年前铺设的骨干网络中。

那根光纤的路径上没有任何星链的审计节点。

这是鸽子网络在欧洲心脏地带最昂贵的一条专用通道。铺设它花费了数据党在布鲁塞尔据点一整年的运营预算,维护它需要每个月更换一次中介节点的路由配置,以防被星链的网络拓扑扫描发现。

但她今天有两件事要做。两件事——分别通往两个方向,每一条都可能是她自己铺设的陷阱。

伊莎贝尔拉开右侧键盘下的隐藏抽屉,取出一块黑色的USB设备——外形和普通的U盘完全一致,但内部封装的是一个一次性的量子随机数发生器芯片。她把它插进右侧终端的接口,屏幕亮起,显示出一个只有命令行界面的加密通信客户端。她输入了第一组指令。

第一条消息,发送给数据党布鲁塞尔联络节点的中继地址。

她敲字的速度不快不慢,每一个词都经过选择,语气保持在她一贯的”内部情报提供者”的冷静调性上:

「可靠来源情报:米兰·沃伊诺维奇已签署对柏林克罗伊茨贝格据点的物理突袭授权。时间窗口:下周内。建议立即转移人员和设备。情报置信度:高。——IS」

她停顿了一下,检查了一遍拼写和语法,然后按下了发送键。

消息通过那根地下光纤出发,经过四个跳转节点,每一次跳转都更换一次加密信封。这条路径的终点是柏林一间废弃面包店地下室的服务器,那台服务器运行着一个自动化的消息分发程序,会把她的消息重新加密后转发到数据党全球节点的内部公告板上。

整个过程大约需要三分钟。这三分钟的延迟是设计好的——不是技术上限,是安全策略的一部分:如果她的通道被星链的反情报系统发现,三分钟的延迟会给数据党足够的时间在收到消息之前——不是收到消息之后——触发紧急撤离协议。

她关上右侧终端的通信窗口,转向左侧终端。

左侧屏幕上,一封新的邮件正在闪烁。发件人是一个她从未见过的地址,但邮件的标题栏只有一行数字:一个四位数的认证代码。伊莎贝尔对照着自己记忆中的配对表确认了这组代码——它来自米兰办公室的一个自动加密转发器,意味着米兰想跟她直接通话,但不是通过电话或视频会议——是通过她终端里一个不起眼的、伪装成系统更新服务的后台进程。

她双击了那封邮件。屏幕上没有出现正文——弹出了一个简单的灰色对话框,上面只有一行字和一个输入框:

「请输入您的委员会工号以确认身份:」

她输入了自己的工号。对话框消失。一个新的终端窗口静默地出现在屏幕底部,背景色和委员会的标准内部系统界面几乎无法区分。

米兰的声音没有出现。出现的是文字——一行接一行地出现在终端上,像是实时输入的。

「伊莎贝尔。早上好。」

她回复。

「早上好,米兰。」

「你今天有两件事要做。我只知道其中一件。你猜是哪一件?」

伊莎贝尔的手指在键盘上方悬停了不到一秒钟,然后开始打字:

「你不需要知道我做的每一件事。你只需要知道我告诉你的事是真的。」

「我知道。所以我让你帮我做一件事。柏林——克罗伊茨贝格的那个面包店——你的人应该在几周前就撤了,但他们没有。我给你情报,不是推测。——米兰」

「情报内容是?」

「数据党柏林据点。」

伊莎贝尔看着这句话,感到一种微妙的、无法定位的不适感。不是因为她不知道柏林据点的存在——她知道,她甚至知道那个据点设在克罗伊茨贝格区一栋旧公寓楼的地下室——而是因为米兰主动向她提供了这个情报。

米兰·沃伊诺维奇从不主动提供情报。他接受情报,分析情报,有时候会反馈他分析后的副产品——但他从不主动。他的信息流永远是接收大于发送,像一个只进不出的黑洞。

而现在他主动给了她一条关于柏林据点的行动情报。

她做出了选择——她决定把它当作一个真实的行动情报传递出去。不是为了米兰,也不是为了数据党,而是因为她无法承担”这可能是真的”的风险。如果米兰真的在下周突袭柏林据点,而她没有提前警告数据党——那几十条人命的重量她背不起。

「我会核实。」她回复。

「不必核实。按我说的做就行。——米兰」

终端窗口在她读完最后一句话之后自动关闭了。没有再见,没有结束标志,就像一段从未发生过的对话。

伊莎贝尔靠在椅背上,看着窗外布鲁塞尔灰蒙蒙的天空。欧盟区那些新古典主义建筑的屋顶在晨雾中若隐若现,鸽群在圆顶之间盘旋。它们在屋顶之间来回飞行,不依赖任何卫星,不计费,不需要任何人的许可。

她打开右侧终端的一个离线文档,开始书写今天需要发送的第二条消息——她以为米兰不知道的那一条。但她没有立刻发送。她想等等看米兰的情报是不是真的。


三小时十七分钟后,验证结果回来了。

不是通过右侧那台终端的鸽子通道——是通过一个更加原始的方式。伊莎贝尔在上午十一点离开办公室,步行穿过两个街区,在舒曼广场旁边的一个报刊亭买了一包薄荷糖。报刊亭老板在找零的时候多给了她一枚两欧元的硬币。她把那枚硬币放进口袋,回到办公室后锁上门,用指甲在硬币边缘的齿纹上轻轻刮了一下——齿纹里嵌着一层几乎不可见的微缩胶片。

她把胶片放在一台老式光学显微镜下——那也是她的办公用品,委员会配发用来检查纸质文件上的防伪水印,没人会觉得一台光学显微镜出现在她的办公桌上有什么异常。

胶片上只有一行字:

「柏林收到。据点已撤离。感谢。——DP」

伊莎贝尔把硬币放回口袋,用打火机烧掉了那枚微缩胶片,把灰烬冲进了洗手池。

米兰的情报是真的。数据党柏林据点确实面临突袭——至少他们的反应看起来像是面临突袭。那么米兰是从哪里得到这个情报的?是数据党内部的内线?还是他纯粹通过星链的监控系统分析出了柏林据点的位置,然后故意给了一条真情报来建立她的信任?

她暂时无法判断。她只知道米兰给了她一条真情报——这本身就意味着什么。米兰不会白给东西。米兰·沃伊诺维奇的每一次出手都有目的。

他在测试什么。

伊莎贝尔回到办公桌前,重新打开右侧终端。她还有第二件事要做——传递给米兰的那条消息。她原本计划在中午之前发出去,但现在她在犹豫。

她打开加密通信客户端,看着光标在空白的输入栏中闪烁。她敲下了第二组指令——这一次发送给米兰办公室的自动加密转发器——用她筛选过的、被认为安全的通道:

「交叉验证情报:数据党计划在未来七十二小时内对拉各斯上空的星链卫星发起物理攻击。目标:STK-44170至STK-44182序列。手段:无人机携带电磁脉冲载荷。情报来源:内部。——IS」

她按下发送键之前,看了一遍这段文字。每一个词都是真的——法尔汉确实在讨论过一种使用高空无人机对特定卫星进行近距离电磁脉冲干扰的方案,虽然这个方案仍然停留在理论推演阶段,远未进入实质执行。但她把它描述为”计划”,给了它一种即将执行的紧迫感,一种米兰应该认真对待的分量。

她按下了发送键。

消息沿着那条鸽子网络的地下光纤出发,但它的最终目的地不是数据党的任何节点——它穿过三个中继之后被转存到一台位于卢森堡的备用服务器上,那台服务器上运行着米兰·沃伊诺维奇配置的一个自动化的情报收取程序。

伊莎贝尔关掉了终端。她靠在椅背上,感到一种她无法准确命名的疲劳——不是身体的累,是那种一直在扮演两种角色、每一句话都要经过双层审核、每一次发送消息都要考虑它是”真的给米兰看的假消息”还是”真的给数据党的真消息”的认知负载。她已经维持这种双重身份四年了。四年来她见过三条隐蔽战线上的人被烧毁:一个欧盟委员会内部的线人,被星链的行为分析算法在两年后找到,现在还在荷兰的监狱里服刑;一个米兰身边的前助理,被米兰亲手查出,在二十四小时内被解职并移交司法机关;一个她自己的副手——那个人到现在都不知道自己为什么被调离原岗位。

他们都是在玩火的时候烧到了自己。她以为自己控火的技术比他们好。但她今天第一次感到一种不确定——

她看着桌面上那两台外观完全一致的显示器,它们并排摆放,像一对孪生兄弟。但它们的灵魂指向完全相反的方向。她每一天都在这两个方向之间来回切换,用同一双手在不同的键盘上敲出不同阵营的文字。

她突然想起一个词:分裂。

不是精神上的分裂——是身份的分裂。她不是一个人活在两个阵营里,她是两个人在同一个身体里轮流值班。早上的伊莎贝尔是欧盟委员会特使,下午的伊莎贝尔是数据党的情报源,晚上的伊莎贝尔是米兰的信使。每一班岗交接的时候,她都要花几分钟调整自己的心态、用词、甚至呼吸节奏。

代价在哪里?她不知道代价在哪里——也许代价还没来,也许代价已经来了但她没有察觉到。

她关上灯,在黑暗中坐了一会儿。


晚上九点,伊莎贝尔走进布鲁塞尔圣凯瑟琳区的一家牡蛎餐厅。

餐厅不大,大约十张桌子,墙面贴着白色瓷砖,吧台上方的吊灯发出温暖的黄色光芒。这个时间点,晚餐高峰已经过去,餐厅里只剩两桌客人——一桌是一对老年夫妇在分食一份烤鱼,另一桌是一个独自坐在角落里的年轻男人,面前摆着一杯白葡萄酒和一盘空了的牡蛎壳。

伊莎贝尔在吧台前坐下。老板认识她——她每个月会来这里一到两次,每次都点同样的东西:六只生蚝、一杯夏布利、一份面包。但今天她不是为了吃饭来的。

她点完单之后,那个坐在角落里的年轻男人站了起来,端着他的酒杯走到吧台,在离她两个座位的地方坐下。他看起来大约三十岁,穿着一件深蓝色的休闲西装外套,里面是白色T恤,留着短须。他的目光落在吧台后面的酒瓶架上,不看伊莎贝尔,开口说话的声音压得很低——不是耳语那种低,是餐厅背景噪音刚好能盖过的程度。

“柏林的人已经撤了。面包店关门了。谢谢你。”

伊莎贝尔没有看他。她端起老板刚倒的夏布利抿了一口,在放酒杯的时候用同样低的音量说:“不用谢。”

“我们需要知道你那条情报的来源。”

“我不能告诉你。”

年轻男人沉默了几秒。“我们不是在审问你。但我们想知道——米兰是不是在给你投喂假情报。”

“柏林的情报是真的。你们已经撤了。”

“那正是让我不安的地方。“年轻男人用指尖轻轻转动酒杯的杯脚,眼睛仍然盯着酒瓶架,“米兰·沃伊诺维奇从不无偿提供情报。他给了你一条真情报——这在过去四年里从来没有发生过。他在用这条情报做什么?他在买什么?”

伊莎贝尔没有回答。牡蛎端上来了,老板把它们放在碎冰上,半片柠檬在旁边微微滚动。她拿起一只牡蛎,没有挤柠檬,直接倒进嘴里。海水的咸味在她的舌尖上化开,带着一种冰冷的、近乎尖锐的鲜甜。

她用纸巾擦了擦手指,然后说了一句她不确定该不该说的话:

“我也给你们了一条。”

年轻男人转过来的目光第一次在她脸上停留。他的眼神在说吧台上方那盏暖黄色吊灯的映照下显得并不温暖。

“你说什么?”

“我传递给米兰一条消息。告诉他,你们计划攻击拉各斯上空的卫星。”

年轻男人没有说话。他的表情没有明显的波动,但伊莎贝尔能感觉到他身体姿势的轻微变化——他握着酒杯杯脚的手指收紧了一些。

“这是真的。“他说。不是问句。

“我知道它是真的才发的。”

“你知道米兰会怎么处理这条消息吗?”

伊莎贝尔沉默了。这是一个她不想面对的问题,但她知道答案——米兰会对拉各斯上空的卫星增加监控力度,反推消息的来源,最终确认她作为双面间谍的身份。

“他会知道这条消息是从哪里来的。“年轻男人替她说了出来,声音平静得像在陈述一个与他自己无关的事实,“因为你的通道只有他和你之间建立了单向验证。他没有告诉你他给了你假情报——但如果你能确认柏林情报是真的,说明你已经通过某种方式验证了它。一个普通的欧盟官员不会去验证这种情报。只有间谍才会。”

伊莎贝尔的手指停在牡蛎壳的边沿上。冰水从壳上淌下来,滴在桌布上,洇开一小片深色的湿痕。

她忽然明白了。

米兰给她的”柏林突袭情报”——那不只是一个情报。那是一枚涂了蜜的钩子。他不需要通过这条消息来打击数据党——数据党柏林据点撤不撤离对米兰来说根本没有影响,他随时可以通过星链的监控系统重新定位他们。他给这条情报的目的只有一个:

看她会不会传递它。

如果她传递了——就像她做的那样——她就确认了自己是双面间谍。因为一个真正的欧盟特使不会也不敢传递这种级别的行动情报。只有一头在两边都下了注的鼬鼠,才会有动力去利用它。

她在米兰的棋盘上走了第一步。米兰看到了那一步,甚至在三小时前就通过那枚硬币上的微缩胶片确认了她走了那一步——然后他安静地等待着她走第二步:那条关于拉各斯卫星攻击的情报。

两个方向的情报。两条路。

第一条路——米兰用来确认她的身份。

第二条路——米兰用来确认她的忠诚度。

她以为自己在同时向两边传递情报,维持一种精妙的平衡。但米兰用一个简单的测试就把她的平衡木抽掉了一半。

她站在吧台前,手里还拿着那只空了的牡蛎壳。壳的内壁在灯光下泛着珍珠母的微光,光滑、完美、冰冷。

“你觉得米兰不知道这条情报来自哪里?“年轻男人的声音从旁边传来,不紧不慢,像一把细长的刀慢慢推进鞘里,“你传递给他的’拉各斯卫星攻击’——是真的。你真的认为他不知道这个情报的来源?”

伊莎贝尔把牡蛎壳放回碎冰上。

她无法回答这个问题。

因为她知道答案。


那天晚上,伊莎贝尔回到自己的公寓,没有开灯。

她站在客厅的落地窗前,看着布鲁塞尔的夜景。欧盟区的那些大楼在夜色中勾勒出一排整齐的轮廓,灯火稀疏。远处,原子球塔的银色球体在夜空中反射着微弱的月光,像一个巨大的、沉默的警告标志。

她看着窗玻璃上自己的倒影。

那个倒影看起来很镇定。西装笔挺,发型整齐,表情从容。一个三十五岁的欧盟高级官员,在这座城市最有权力的机构之一工作,拥有独立的办公室、外交护照、和进入几乎所有欧盟政府大楼的通行权限。

但那个倒影是一个秘密已经暴露的人。

她知道自己今晚应该做一件事——立刻切断与米兰的所有联系渠道,在二十四小时内从布鲁塞尔消失,启用鸽子网络为她准备的紧急撤离方案,转移到数据党在某个她不知道地点的安全屋。

但她没有动。

不是因为不能。是因为她已经在这条双面线上走了太久,久到她不知道自己单面的样子应该是什么样子的了。她不知道自己还能不能只做一个身份。

而且——她在米兰的棋局中已经暴露了。但米兰没有封她的通道,没有冻结她的权限,没有逮捕她。他仍然让她坐在那间十五平方米的办公室里,操作那两台终端,发送那些加密消息。

这意味着米兰不打算现在处理她。

他还需要她做什么。

伊莎贝尔把额头抵在冰凉的窗玻璃上,闭上了眼睛。窗外的城市灯光在她闭合的眼睑上映出一片模糊的橙红色。她感到一种深层的、从她踏入这场游戏的第一天起就一直在积累的疲劳,正在从她的骨髓里渗出来。

她不是棋手。

她甚至不是棋子。

她是被摆在棋盘上的一枚已经被人标记过的、对方暂时不吃的子——不是因为对方吃不到,是因为对方想看看她还能走多远,还能走到哪个格子里去。

她有一种冲动——想立刻打开那台终端,把今晚的一切写下来发给法尔汉。但她的手没有动。因为她不确定米兰是否也希望她这样做。也许米兰正在等她做这个动作。

也许她的每一步——包括”发现自己被算计然后向数据党求助”——都在米兰的预期之中。

她不知道自己的哪一步才是真正属于自己的。

她把手机放在茶几上,屏幕朝下。没有发任何消息。

在那个没有开灯的客厅里,伊莎贝尔·克劳斯坐在沙发上,看着面前两台的智能手机——一部是她的委员会工作机,一部是她与数据党联系的加密终端——它们安静地躺在玻璃茶几上,像两只正在对峙的、都不准备先开口的动物。

窗外的布鲁塞尔安静地呼吸着。圣米歇尔大教堂的钟声敲响了十一下——十一声低沉、缓慢的铜响,在夜空中向四周扩散,像一颗石头投进深水中激起的同心圆。

伊莎贝尔听着那钟声,发现自己在数。

一、二、三——

数到第七声的时候,她意识到自己在做什么——她在想,这钟声是用什么协议传输的。不是数据包。不是光子。不是射频信号。就是铜和空气。物理的、原始的、网络之外的东西。

布鲁塞尔的钟声已经响了八百年。星链才存在不到三十年。

她靠着沙发,闭上眼睛,感觉自己的身体正在缓缓沉入某种她无法控制的下坠中——不是睡着,更像是一种主动的、想要把自己藏起来的重力。

她今晚没有发任何消息。

但她知道,明天早上她还是会走进那间办公室,打开那两台终端。因为她已经没有办法让自己停下来了。

微信公众号二维码

扫码关注微信公众号
阅读更多独家内容