地下室里没有光,但Zero能感觉到时间在头顶那条门缝的移动中流逝。光带从铁皮柜门边缘渗进来,先是斜斜地切在地面正中央,然后一寸一寸地往东北方向挪,等它触到墙角那堆废弃主板时,天应该已经亮了六成了。他靠着墙坐着,后腰被一块凸出的砖顶得发酸,但每次想换个姿势的时候,又觉得任何微小的移动都在消耗体力——一种奇怪的判断,好像静止本身能让他多撑一会儿。 他没睡着。不是不想睡,是眼球底部的神经一直处于某种灼烧状态,阖上眼睑之后那种灼烧感变成了一片暗红色的光斑,不停闪动,像远处有人在用激光笔照他的视网膜。他试着数自己的呼吸频率,数到第七十八次的时候中断了,因为头顶传来老头拖拽重物的声响——铁皮柜门被拉开了,活板门掀起时发出老式合页的吱呀声,然后是一片塑料袋窸窣和玻璃器皿互相碰撞的细碎声响。 老头的声音从入口处垂下来,隔着一层空气的距离,沉闷但清晰:"水。还有包子。" Zero站起来。膝盖发出一连串细小的咔嗒声,他扶着墙壁站起身来,墙壁表面粗糙的颗粒嵌入他的掌心。他走到梯子底下,仰头看见老头举着一只手电筒从入口探下来半个肩膀,光柱打在他脸上白花花一片,刺得他眯起眼偏过头去。老头把一只塑料袋顺着梯子搁在第三级横档上,里头裹着两个白色塑料饭盒和一塑料瓶矿泉水,水珠在瓶身外面凝了一层,在电筒光里折射出微弱的星点。 他伸手去接,手指碰到了老头的手背。那手背上的皮肤干枯而凉,几乎没有温度。 "你收过国安的东西。"Zero接过塑料袋之后没松手,他攥着袋子的提手,指腹贴着塑料表面滑腻的水膜,声音从喉咙里挤出来的时候带着一夜未眠的沙哑和干燥。 老头的电筒光没有移开,依然照着他的脸。光晕的边缘能看见老头那张浮肿面孔上细微的肌肉抽动,嘴角往下扯了一下又收回去。沉默持续了几秒钟,老头从喉管深处发出一声含混的气音,算是默认。 "盒子上那种三道平行线。"Zero继续说,他的眼睛适应了强光之后能看清老头的表情了——左眼眼睑下垂得比右眼厉害,是脑溢血后遗症造成的面瘫,"是哪一科的标记?" 老头把电筒从右手换到左手,空出来的那只手在裤缝上蹭了蹭。他低头看着梯子下面站着的Zero,目光从Zero的脸移到Zero怀里的塑料袋,再移回Zero的脸。他说:"你不该问这个。" "我已经问了。" "问了我也不能告诉你。"老头把电筒光移开,光束照亮了地下室的墙壁,扫过那些堆叠的老旧机箱和缠成一团的电缆。光斑在墙面上跳动着,把灰尘的影子拉得很长。"你进来的时候我就说过——天亮之前这块地方我管得住。天亮之后你走了,你问什么我都不知道,你是来修手机的,修完就走了。我们之间没有其他对话。" Zero攥着塑料袋的手指收紧了一些。塑料袋被捏得簌簌响,瓶身上的水珠顺着他的虎口淌下来,凉意渗进掌纹的沟壑里。他分析过老头的身份背景——三年前的技术交流会外围那次见面,老头给他看过一张泛白的工作证残片,上面印着"国家计算机网络应急技术处理协调中心"的字样,虽然照片和姓名那一栏都磨没了,但"中心"两个字还留着。后来他私下查过老头的履历,公开信息里空白一片,像被橡皮擦过一样干净。 "那你至少告诉我一件事。"Zero说,"这个标记出现在我买的东西上,是随机抽检还是定点投放?" 老头的身体在入口处僵了一下。零点几秒的反应延迟,很短暂,但Zero注意到了。老头把电筒重新抬起来照了照自己的手腕看了一眼表,然后把手电筒关了。地下室重新陷入黑暗,只剩活板门边缘那条光带。老头的声音从暗处传下来,每个字都像是用牙咬着说出来的:"你那个盒子。第一次打开的时候,封条完好?" "完好。" "静电袋没开过口?" "没有。" 老头沉默了很久。久到Zero以为他不打算再说话了。然后老头的声音再次响起,比之前轻了很多,轻得像怕被什么听见:"那你觉得,封条完好的东西,怎么才能被人刻上标记?" Zero的呼吸停了一拍。他站在梯子旁边,塑料袋底部的冷凝水沿着他的小臂往下淌,滴在地面上发出极轻的啪嗒声。他听懂了老头的意思——如果包装完好无损,那标记只能是在封装之前刻上去的。在工厂里。在硬盘盒从生产线下来、装进静电袋、贴上封条之前,就有人把那三道平行线刻在了铝壳内壁上。这个人要么控制了生产环节,要么把一整批产品都做了处理,再通过正常的渠道流到他手上。 "你知不知道那是哪一批?"Zero追问。 老头没回答。活板门开始合拢,合页吱呀呀地响,光线逐渐收窄成一个楔形,最后彻底消失了。铁皮柜门重新拉上来的金属刮擦声之后,地下室恢复了绝对的黑暗和寂静。 Zero站在原地没动。手里塑料袋的提手勒进他的指关节,水珠还在往下滴,滴声在静默中被放大了好几倍。他靠着梯子的侧柱蹲下身,把塑料袋放在地上,拧开矿泉水瓶盖灌了两口水。水是常温的,经过塑料瓶之后带了一点微弱的化学气味,但足够缓解他喉咙里的灼烧感。他吃了一个包子,皮厚馅少,包子底部的面皮黏在饭盒底面上,他用指甲抠了两次才撕下来。 咀嚼的时候他在想老头的话。老头刚才那句"你觉得封条完好的东西怎么才能被人刻上标记"本身就是一个危险的回答——它证实了那个标记的来源确实跟国安系统有关,而且那种标记方式是在供应链上游完成的。如果这是他们常规的操作手法,那么在市面上流通的很多电子产品上都可能有类似的标记,只是普通人发现不了。那些藏在铝壳内壁、电路板背面、散热片底部的识别码,构成了一个隐形的追踪网络。 老头知道这一点。老头三年前在技术交流会上能认出他来、能主动跟他聊到系统底层漏洞的话题,也许不只是因为"碰巧"——也许老头早就知道他是什么人,知道他将来会走到哪一步。那个技术交流会的主办方背景鱼龙混杂,当时Zero拿了张借来的邀请函混进去的,但老头根本没问他的身份。 他吃完了第二个包子,把空饭盒叠在一起塞回塑料袋里。站起身的时候头部一阵发晕,是低血糖和缺觉共同作用的结果,他扶住梯子的金属竖杆等了几秒才恢复平衡。手机屏幕显示六点零三分。 他在黑暗里做了三个决定。第一个,主动联系警方。如果他被动等待通缉令下来,那他的任何辩解都会被前置在"在逃嫌疑人"这个框架里,说服力减半。他得在传唤正式送达之前走进警局的大门。第二个,不碰硬盘盒。在找到一台干净的校验设备之前,不打开、不接入、不读取它里面任何一份文件。第三个,安琪。他得见安琪一面,但见面的地点和时间必须由他控制。 他从帆布挎包里掏出备用手机。开机之后他看了一眼信号格——零格,地下室完全屏蔽了移动网络信号。他爬上梯子,头顶活板门还关着,他用指关节叩了三下门板。间隔均匀,力度不大不小。过了大约二十秒,活板门被掀开一条缝,老头的手伸下来把门板掀到全开。 Zero爬出地下室的时候,铺子里的日光灯已经亮了。晨光从卷帘门底部的缝隙里渗进来,在地面上拉出一道扁平的亮线,亮线里浮动着细小的灰尘颗粒。老头站在工作台旁边,正用一块绒布擦拭一把螺丝刀的握柄,头也不抬。 Zero站在活板门边上拍了拍裤子上沾的灰,拿起手机看了一眼信号。格数从零跳到两格,再跳到四格,然后稳定下来。他在通讯录里翻出那个号码——安琪的私人号码,不是星盾配发的工作终端。拨出去的时候听筒里传来三次冗长的等待音,接通之后安琪的声音带着明显的睡意,低哑而短促:"谁?" "是我。"Zero靠在铺子堆满手机壳的货架上,卷帘门底缝透进来的光带着灰尘的颗粒打在他的帆布包上。"你现在能说话吗?身边有人没有?" 电话那头安静了两秒。然后是掀被子的窸窣声和赤脚踩在地板上的沉闷脚步声,再然后是一扇门被关上的咔嗒声。安琪的声音清晰了一些,但依然压得很低:"你说。" "我要去警局自首。" 安琪在电话那头做了一个吸气动作——Zero听得出那种从鼻腔里快速抽进一口气的细微声响。"你说什么?" "不是我干的。"Zero看着卷帘门底缝里那道越来越亮的白光,把声音压到最小,"有人在我机器上植了后门,伪造了我访问深渊市场的操作记录。今天警局会收到举报信,如果我坐等他们来找我,局面就不是我能控制的了。" 安琪沉默了几秒。他听见她的指尖在什么表面上轻轻叩击着,可能是手机壳的边缘,可能是桌面。"你什么时候去?" "现在。" "不行。"安琪的声音突然变得干脆利落,那股子睡意全消了,"你现在去等于什么准备都没有。你得先把你的时间线理清楚,昨天下午你在我这边——那段监控我可以帮你调出来,证明你下午没有时间在深渊上做交易。我让周律师跟你一起进去,你别单独面对他们。" Zero捏着手机的手指收紧了。他注意到安琪没有问他"你到底有没有做"——她直接跳过了那个问题,默认他是清白的,然后开始谈怎么帮他脱身。这种过快的信任让他的大脑皮层上掠过一丝警觉,但他暂时找不到合理的反驳理由。也许安琪昨天晚上也收到了什么信息,也许她早在他打电话之前就知道他出事了。 "周律师是哪边的?"Zero问。 "星盾的法务外包团队,主做网络犯罪辩护。我让他只代表你个人,不代表星盾。"安琪说到这里停顿了一下,电话里传来她拉开抽屉翻找东西的声响,"你的公寓现在可能被盯着,你别回去。你在哪?我过来接你。" Zero看了一眼对面的老头。老头已经把螺丝刀放下了,正坐在柜台后面的高脚凳上看手机,屏幕朝他自己那边,但Zero注意到老头的拇指没有在划屏,只是悬在屏幕上空。 "我在火车站后街。"Zero对电话说,"你别开车进来,后街太窄。你停到对面那个废品收购站旁边的人行道上,我出来找你。" "二十分钟。"安琪挂了电话。 Zero把手机塞回裤袋,走到工作台前面。老头抬起头看他,那双因脑溢血而略微不对称的眼睛里没有询问,只有一种近乎冷漠的平静。 "我走了。"Zero说。 "门锁了之后你自己拉起来钻出去。"老头说完又低下头去看手机,拇指终于开始在屏幕上滑动,像是真的在刷什么内容。 Zero从里面拉了卷帘门的锁扣,把门抬起来半米高,弯腰钻了出去。外面已经是早晨了,火车站后街的青石路面被初升的太阳晒得微微发白,两旁的早餐铺子冒着白色的蒸汽,有人在卖肠粉和及第粥的摊前排了小队。空气里是米浆蒸熟后的甜香和生抽豉油被加热后的咸味混在一起的气味。 他站在铺子门口拍了拍肩上沾的灰尘,把卫衣帽子拉低了一些。他沿着后街往西走了不到一百米,走到十字路口时停住了脚步。路边那家废品收购站的铁栅栏门刚拉开一半,一个穿蓝布围裙的工人正蹲在门口整理摞成堆的旧纸板。收购站旁边的人行道有一段被早上的阳光照得发亮,柏油路面反射着刺目的光斑。 一辆银白色的轿车从十字路口的南边拐进来,车速不快,在废品收购站对面的人行道边缘缓慢停下。车窗降下来,安琪坐在驾驶座上,戴着深色太阳镜,头发扎成了一条低马尾,穿了一件灰色的亚麻衬衫,领口系到了最上面那颗扣子。她的目光隔着太阳镜的镜片扫过来,在Zero身上停留了不到一秒钟,然后伸手推开了副驾驶的车门。 Zero走过去,弯腰钻进车里坐下。关门的时候他听到车门锁咔嗒一声全部落下,安琪的拇指在门锁总控键上按了一下。车厢里有车载香薰淡淡的雪松味,空调出风口吹出来的冷风带着全新的皮革气息。安琪没有立刻启动发动机,她转过头来,把太阳镜摘下来架在头顶的发带上,露出了那双没有化妆、眼下带着淡青色疲倦痕迹的眼睛。 "你昨天晚上在哪睡的?"她问。声音比电话里更干更紧,像是一夜没睡好的人刚开口时的状态。 "朋友的地下室。"Zero说,把帆布挎包放在膝盖上。 安琪的目光从Zero的脸上移到他腿上那只帆布包上,视线在包身鼓起的轮廓上停留了两秒。"包里装的什么?" Zero没有立刻回答。他用拇指隔着帆布面料按了按硬盘盒的轮廓,感受铝壳表面那个新磕出的凹痕和旧划痕之间的位置关系。他想起那三条短信,尤其是第三条。"别交给任何人。包括安琪。"可他现在坐在安琪的车里,硬盘盒在他腿上,而安琪在问他包里装的是什么。 "你问这做什么?"Zero反问道。他的语气比预想中硬了一些。 安琪的眉心微微皱了一下。她把钥匙插进锁孔拧动,发动机启动的震颤从方向盘传到座椅骨架再传到Zero的后背。她挂上挡,松手刹,车子缓缓朝前滑出去。车速很慢,慢到Zero能看清路边早餐摊蒸笼上升起的白色蒸汽如何被风吹散。 "周律师已经往警局那边去了。"安琪一边打方向盘一边说,语音平直,"我跟他通了电话,他建议你到了之后主动要求做数据取证,把你那台机器的硬盘镜像提交给第三方机构做司法鉴定。你现在这台机器什么状况?" "拔电了。没关在公寓里。"Zero把卫衣的拉链往下拉了一点透气,车里的冷气和他身上的燥热冲撞在一起,让他打了个寒噤。"但机器固件被改过,做镜像也没用。对方动的是主板级别的后门。" 安琪的右手离开了方向盘一瞬。她把它放在挡位杆上方,五指张开又收拢,重复了两次。Zero注意到了这个动作——她试图在控制自己的情绪反应。他认识安琪四年了,他知道她只有在心里计算某个复杂变量的时候才会做这种下意识的抓握动作。 "那你需要另一条路线。"安琪说,车速提起来了,窗外的街景开始加速往后退。火车站后街上的梧桐树一棵接一棵地掠过车窗,树叶在早晨的阳光下投下斑驳晃动的影子,"让我来看一下你的硬盘。" Zero转过头看她。安琪的侧脸在阳光和树影交替照射下忽明忽暗,下巴的线条绷得很紧,嘴角几乎是平的。 "为什么?"Zero问。 "因为我用的不是公网链路。"安琪说,"我车上有车载卫星终端,绕开了所有地面基站和运营商出口。你把硬盘接进来之后所有操作不经过任何已知路由节点,直接走低轨卫星加密信道到我公司机房的离线沙箱里做分析——没有任何一个地面节点能截获这段流量。" Zero没有立刻接话。他在权衡:安琪的提议在技术上是可行的,低轨卫星终端的物理层加密和频率跳变确实让地面监听手段失效。但问题不在技术上。问题是安琪这个人本身——她刚刚说"让我来看一下你的硬盘"的时候,那个"让"字的语气跟昨天下午在星盾走廊里说"我知道你真正想问的不是转发程序"时一模一样。一种温和的、可商量的、但骨子里不容拒绝的支配感。 "安琪。"Zero的声音压得很低,低到几乎被车载空调的风声盖过,"你父亲当年查到的到底是什么?" 车内的空气突然变稠了。安琪握着方向盘的手指关节泛白,车速没有变化,但Zero注意到她的视线从前方路面上移开了零点几秒——她的目光穿过挡风玻璃望向某个很远的点,那个点的位置大约是前方高架桥的桥墩处,桥墩表面覆着一层常年汽车尾气熏出来的暗色沉积物。 沉默在车厢里持续了将近十秒钟。车载空调的出风口把冷气打在他裸露的小臂上,皮肤上起了细密的鸡皮疙瘩。安琪的嘴唇动了两次,第一次只是抿了一下,第二次才真正张开。 "我不知道具体内容。"她说。每个字都像是用天平称过重量才放出来的。"我只知道有一样东西。我父亲在他出事的最后一个星期给我妈打过一通电话。那时候我十七岁,在卧室里偷听了我妈的电话内容。他对我妈说——安琪你听好——他说的原话是:'天穹底下有一层。那层不是给人用的。'" Zero的后背离开了椅背。他整个人朝着安琪的方向微微前倾,安全带勒住了他的胸口。"什么意思?不是给人用的?" 安琪摇了摇头。她打右转向灯,把车子从主路上切进一条辅路,车速降下来,路面变窄,两旁的建筑从居民楼变成了低矮的工业厂房。"他再也没有解释过。一周之后他出了事故——官方的说法是他在一次例行系统维护中触电身亡。我妈收到的通知上写着'因公殉职',抚恤金按时到账,档案全部封存。第二年我妈得了癌症,走了。我十八岁开始自己查。" "你查到了什么?" "查到了一个编号。"安琪把车拐进一片露天停车场,在一棵老榕树的树荫底下停稳了。她拉上手刹,发动机没有熄火,空调还在持续运转。她转过半边身体面对Zero,太阳镜已经摘了,攥在左手手心里,镜腿夹在她指缝间。"那个编号后来被我拼出来——'天穹-7-后门-审计冗余接口'。" Zero的手指在帆布包的表面上顿住了。他听说过"天穹"系统的技术架构,那套系统的核心设计理念之一就是"任何操作都不可绕过审计层"。如果"审计冗余接口"存在,那意味着有人在天穹的主审计链路之外另开了一条完全独立的、不记录不报备的旁路通道。我父亲发现的所谓"后门",就是那条旁路通道的入口。 "他查出那个接口的流量指向谁了吗?"Zero问。 "没来得及。"安琪的声音轻了下来。她把手心里的太阳镜翻了个面,镜片反射着从榕树叶子缝隙里筛下来的阳光碎片,在车厢内壁上投出几块晃动的光斑。"但我知道他在出事的头天晚上跟一个人见过面。那个人后来从国安系统退出了,名字从所有公开资料里被抹掉了。只剩下一个代号——工程师编号D-07。" Zero听到这个编号的时候太阳穴跳了一下。他昨天在深渊市场的卖家注销记录里见过类似格式的编号前缀。那个卖家账户在注销前的最后一次操作中附加的元数据是"0x453a484f",如果换算成某种内部编码格式…… "D-07后来去哪了?"Zero问。 安琪没有回答这个问题。她的目光越过了Zero的肩膀,落在副驾驶车窗外侧的后视镜上。她的瞳孔收缩了一瞬,那个变化很细微,但Zero坐在她侧前方不到一臂的距离内,他看得清清楚楚。 安琪的手垂下来按在挡位杆上,拇指推了一下,从P挡拨到了D挡。"后面那辆黑色SUV。从火车站后街跟我们到这里的。停了之后一直没熄火。" Zero没有回头。他用余光扫了一眼副驾驶车门外侧的后视镜镜面——镜子里映出停车场入口处一辆深色的SUV,车头正对着他们的方向,引擎盖表面没有热气上浮,说明那辆车刚停下来不久。 "别停。"Zero说,"开出去。往人多的地方开。" 安琪的脚从刹车踏板移到油门上。银白色轿车从树荫底下窜出去的时候,轮胎在柏油路面上发出一声短促的胶皮摩擦声。她打方向盘的速度比之前快了一倍,车身在车位之间的空隙里切出一条流畅的弧线,直接朝停车场出口方向冲去。Zero被离心力压在副驾驶座椅的侧翼上,后脑勺撞了一下B柱的塑料饰板,疼得他缩了一下脖子。 他从座椅缝隙里回头看那辆黑色SUV的后窗——隔着三十多米距离,SUV的驾驶座车窗正在往上升,遮蔽了驾驶座上那个模糊的轮廓。但就在车窗合拢前那半秒,Zero看到了一张面孔的局部:下颌线、嘴唇的弧度和下巴正中的一道浅浅的凹痕。那个人在笑。 安琪的车冲上主路的时候汇入了一股早高峰的车流。前后左右都是车,刹车灯此起彼伏地亮灭,喇叭声从后面某辆着急的货车驾驶室里传出来。安琪把车速控制在四十码上下,手一直压在换挡杆上没有松开,指节依然泛白。 "我刚才说到的那个编号——"Zero抓住副驾驶上方的拉手稳住身体,"你查到的D-07,跟他有关的资料你现在还有没有?" 安琪从中央扶手箱里摸出一部手机,扔到Zero腿上。屏幕亮着,停在相册的一张照片上。照片拍的是纸质档案的复印件,纸面泛黄,右下角有一枚模糊的骑缝章。零距离凑近看上面的印刷字:"国家级项目技术外援资格审查表 · 姓名栏:空白 · 编号:D-07 · 隶属单位:国家网络安全总局特别调查组(已撤销编制)· 入组日期:2009年3月 · 撤出日期:2015年11月。" "2015年11月。"Zero念出了那个日期。他脑子里最敏感的几根弦同时被拨响了——2015年11月是"天穹"系统最后一次重大版本迭代的封测窗口。那次迭代之后,先知开始在业内崭露头角。而安琪的父亲死于2015年12月。 "安琪。"他说出了那个自己还没完全消化的判断,"你父亲发现的所谓'审计冗余接口',很可能在2015年11月的版本迭代中被正式纳入了天穹的核心架构。它从一开始就不是bug,是功能。" 安琪的脚从油门上抬了起来。车子在车流中速度骤降,后面那辆货车猛按喇叭,尖锐的长鸣从车尾一直灌进车厢。安琪的嘴唇在轻微地颤抖,她咬住了下唇内侧的肉,咬出了血味也没松开。 她没有说话。她把车重新提速,汇入车流,朝市中心的方向驶去。 后视镜里那辆黑色SUV没有再出现。但Zero知道对方不需要跟了。该传递的信息已经传递完了——他们不跟车,是因为他们已经拿到了想拿的东西。 安琪的手机屏幕还亮着,停留在那张模糊的档案照片上。Zero把手机翻过来扣在膝盖上,屏幕朝下,遮住了那张泛黄的纸面。但D-07那个编号已经刻进了他的短期记忆里,跟他硬盘盒上的三道平行线、深渊市场卖家元数据里的十六进制残片、以及安琪父亲那句"那层不是给人用的"叠在一起,叠成了一座压在胸口的、越来越沉的铅块。