从恒通安防出来,天已经黑了。
姚青岳坐在车里,把存储器**笔记本电脑。顾长庚留下的数据包解压后有三个文件夹:固件源码、激活节点分布图、还有一份名为“笔记”的文档。他点开文档。第一页是目录,按时间排列,从十二年前恒通安防的最后一个项目开始,到他在档案室写下最后一行字为止。姚青岳没有按顺序读。他直接翻到目录最后一行——观察者账户。页码标着47。
翻到第47页。顾长庚的字迹,钢笔,和他留在SIM卡槽纸条上的字一样。
观察者账户的登录界面需要两个条件。第一,登录者必须是管理账户已经激活的节点上的活人。第二,登录者必须知道观察者账户的账户名。第一个条件解释了为什么之前没人发现它——管理账户激活之前,观察者账户根本不响应登录请求。第二个条件是陆沉留下的后门。他把管理账户的密码从“空值”改成“等”,同时把观察者账户的账户名从默认的“观察者”改成了“管理账户的密码是什么”。不是改密码。是改账户名。陆沉用了一个问句当账户名。任何人如果知道了管理账户的密码——“等”——然后在登录界面输入“等”作为账户名,就会进入观察者账户的密码输入栏。陆沉设计了一个只有知道管理账户密码的人才能进入的观察者账户。他把观察者账户藏在了管理账户的密码里。
姚青岳靠在椅背上。陆沉在十二年前离开恒通安防之前,不仅把管理账户密码改成了“等”,还把观察者账户的账户名改成了“等”。用同一个字。管理账户的密码是“等”。观察者账户的账户名也是“等”。那个在消防控制柜备注栏里反复出现的“等”字,是陆沉刻在系统最深处的签名。不是规则在等。是陆沉在等。等有人发现管理账户的密码是什么,然后用这个密码去推开观察者账户的门。
他继续往下看顾长庚的笔记。
陆沉在恒通安防做的最后一件事,不是改密码。是签字。他作为研发总监,在恒通1990芯片的量产确认书上签了字。那颗芯片在量产的时候就已经包含了管理账户和观察者账户两个隐藏账户。陆沉知道。他签了字。然后他辞职,成立了第七局。他用十二年时间测绘规则网络,不是为了弥补签字——是为了理解签字那天他自己到底签了什么。
顾长庚在笔记最后一页写了三行字:
陆沉签字的时候以为隐藏账户是代码错误。后来他才知道不是。签字不是授权生产——是激活。量产确认书上有二十三个人的签名。陆沉是最后一个。前面二十二个人签的时候,管理账户还在休眠。陆沉签完最后一笔,管理账户醒了。因为二十三个签名正好凑够了管理账户激活所需的交互阈值。
姚青岳把笔记本放在方向盘上。交互阈值。老K说过,规则需要足够高的交互频率才能激活。灰墙公寓的门禁巡检从每周一次改为每两小时一次,频率提高了,三个月后管理账户激活。但管理账户本身需要的激活频率是多少?二十三个签名。一份量产确认书上二十三个人的签名,信息密度足够唤醒一个在固件里沉睡了不知道多久的隐藏账户。
但顾长庚说管理账户醒了。没有说观察者账户。
陆沉签完字,管理账户激活,观察者账户没有。观察者账户需要另一个阈值。更高。不是签名数量,不是交互频率——是登录。观察者账户需要有人主动登录,输入正确的账户名,然后在密码栏里给出回应。顾长庚是第一个。他输入了“等”——管理账户的密码,也是观察者账户的账户名。然后观察者账户弹出了密码输入栏。他输入了姚青岳的名字。观察者账户激活了。不是二十三人的签名。是一个人——一个活人——主动走到登录界面前,用自己的名字回应了陆沉刻在代码最深处的那个字。
手机震动。刘经理的号码。
他接起来。刘经理的声音压得很低,**里有风声,像是在室外。
“姚警官。你问十年前交接文件上签字的人是谁——我上次没说完。签字的人是陆沉。但不是他一个人签的。交接文件上有三个签名栏。陆沉签了第一个,代表恒通安防。第二个签名栏是物业公司的负责人。第三个签名栏是接收单位的代表。”
“接收单位是谁。”
“第七局。”刘经理的声音顿了一下,“十二年前第七局刚成立不到半年。陆沉既是恒通安防的法人代表,又是第七局的局长。他在交接文件上签了两次——一次代表恒通安防,一次代表第七局。中间那个名字是物业公司的。那个人签完字之后没见过第二次。和我们都没有关系。”
“名字。”
“姓苏。苏暮雪。”
苏暮雪。苏晚晴的姐姐。第七局档案管理科前任科长。三年前死于合规综合征。死前所有遗存档案温度异常偏低。她在十二年前签了一份物业交接文件,作为物业公司的代表。那时候她还不是第七局的人——她是灰墙公寓物业公司的负责人。签完字之后她消失了。不是失踪——是调走了。调去了第七局。陆沉把她招募了。
“你之前说你不知道排班表背面那行字。”姚青岳说。
刘经理沉默了几秒。“我确实不知道。但我猜到了。苏暮雪在交接完成之后单独找我谈过一次话。她说这栋楼以后会有一些东西不一样。消防门禁的巡检频率要调到每两小时一次。排班表背面可能会多出一行字。如果以后有值夜班的保安问起来,就说不知道。”
“赵建国问过你。”
“问过。不止一次。第一次是他调夜班的第一天。他问我排班表背面那行字是什么时候印上去的。我说不知道。三个月后他又问了一次,是7月14日——他收到待岗通知的前一天。他拿着排班表背面的复印件来找我,说那行字不是印刷的——是热转印。用激光打印**在透明转印膜上,加热之后压到纸上的。不是油墨。是碳粉。他说这种热转印设备只有第七局的档案室有。”
“他是对的。”
“他是对的。”刘经理重复了一遍,“他比我们都聪明。他从排班表的碳粉颗粒分布推算出打印机的硒鼓型号,然后查到全市只有三台同型号的热转印打印机——全部在第七局的档案室里。7月14日那天晚上他给我看复印件的时候,他已经在笑。他说他不是被规则选中的。他是被第七局选中的。排班表背面那行字不是系统自动生成的——是第七局的人手动打印上去的。陆沉在他的实验笔记里写了激活条件——交互频率每两小时一次。但陆沉的实验笔记被第七局的人看了。有人看懂了他的实验条件,然后把条件制造成了规则。不是规则寄生了排班表。是有人在用规则的语言写排班表。”
姚青岳把手机换到另一只耳朵边。“苏暮雪。”
“是她。她签了交接文件之后,被陆沉招进第七局。她是档案管理科的第一任科长。她负责管理所有寄生节点的台账、排班表、巡检记录——所有的高频交互文档。她的科室里有热转印打印机。她有权限接触所有空白排班表的背面。她在陆沉的实验还在进行的时候,就开始在排班表背面打印那条条款了。不是规则。是她。她用了十二年的时间,在每一栋安装了恒通1990设备的老旧建筑里,在排班表背面打印了同样一行字。她用档案管理科的办公设备,把陆沉的实验变成了全局激活。”
“陆沉知道吗。”
“不知道。他以为排班表条款是管理账户自动生成的。他一直在监测管理账户的行为,没有监测苏暮雪。因为苏暮雪不在系统里。她用热转印打印机写条款,用档案室的碳粉写规则。她不需要登录管理账户——她是活人。她有权限。有钥匙。有打印机。她利用陆沉的实验参数,在规则外面自己造了一层规则。赵建国发现了。所以他被待岗了。”
“被第七局待岗,还是被规则待岗。”
刘经理没有回答。风声从电话那头传过来,持续了十几秒。然后他说:“苏暮雪三年前死了。合规综合征。死之前她把档案室的所有热转印碳粉全部销毁了。除了赵建国的排班表背面那一张——她留下了。赵建国发现的那张。”
“她为什么留。”
“赵建国说她留了一句话给他。写在那张排班表背面条款的最下面,用热转印碳粉打印的,字体很小,和条款正文混在一起。赵建国说他第一次看的时候以为是条款的补充说明。后来他用放大镜看了,不是条款。是苏暮雪写给他的信——也许是写给她妹妹的。或者写给你的搭档。我不知道。赵建国说他看完之后就把排班表放回去了,没有告诉任何人内容。然后第二天他就收到了待岗通知。”
姚青岳把方向盘上的笔记本拿起来。赵建国的排班表复印件还在他证物袋里。他翻出来,用手电筒照着看。背面条款最下面,有一行极小的字,肉眼几乎无法分辨。他拿出随身带的放大镜,对准那些黑色颗粒。不是油墨。是碳粉。热转印碳粉颗粒在放大镜下呈现出不规则的点状分布,和打印机硒鼓的物理特征完全吻合。但那行字太小了,即便用放大镜也只能看到颗粒,看不清字形。需要显微镜。或者高倍率扫描仪。苏晚晴的实验室应该有。
“赵建国用什么看了那行字。”
“他说他用消防控制柜的监控摄像头拍的。把排班表贴在消防门门框上,然后在值班室里远程调取监控画面,放大,截图。他用灰墙公寓自己的监控系统,看了苏暮雪留给他的信。”
一个夜班保安,用规则寄生的监控摄像头,看了一个用规则的外壳写给规则中的人的信。赵建国在被替身追到的最后一个夜班里,不是为了保命。他是想把那行字看完。
“内容是什么。”
“我不知道。他说只有两个人能看到——他和顾长庚。因为顾长庚也是恒通安防体系内被管理账户标记过的人。苏暮雪在打印那行字的时候,用的是热转印碳粉里的特殊成分——只有在恒通1990监控摄像头的红外光下才能显影。普通的放大镜看不到。只有在规则的监控系统里才能看。赵建国看到了。顾长庚可能也看到了。现在他们都走了。只剩下你。”
姚青岳把放大镜放下。他手里这张复印件是普通复印机印的,碳粉颗粒里没有特殊成分。要看原件。原件在灰墙公寓值班室。在排班表背面。赵建国把它贴回了原来的位置——排班表还挂在值班室墙上。他在那个雨夜第一次进灰墙公寓的时候,从排班表旁边走过。他翻过排班表背面,看了赵建国的手写记录。但他没有注意到条款最下面那行字。因为那行字用肉眼看不到。
“刘经理。排班表还在值班室墙上吗。”
“在。你没动,第七局没动,谁都没动。赵建国把它贴回去了,用透明胶带——就是你第一次来的时候看到的那张。他贴得很紧。”
姚青岳挂断电话,发动车,往灰墙公寓方向开去。夜色已经完全落下来,路灯的光在挡风玻璃上拉成一道道橙色的线。他把顾长庚的工牌从内袋取出来,放在中控台上。两道划痕在仪表盘的微光下泛着细细的银白色。车停在灰墙公寓巷口时已经是深夜。他推开车门,走进那栋老楼。声控灯还是坏的。二楼拐角纸箱还在。三楼防火门开着,值班室门没锁。他推开,手电筒光束照向墙面。排班表还贴在那里,透明胶带发黄,边缘卷起。他把排班表揭下来,翻到背面。赵建国的手写记录——7月15日,22:00,待岗通知,门禁灯红了。他把手电筒对准条款最下面。那行字太小了,肉眼只能看到一排黑色的细线,像是一条印刷污迹。他用手机拍了一张高清照片,放大。碳粉颗粒在手机屏幕上变成模糊的灰色点阵。看不清。
他需要消防控制柜的监控摄像头。就像赵建国做过的那样。
走下地下一层时,应急灯还在闪。消防控制柜的屏幕亮着,**三角形还在。他调出监控画面,把排班表贴在消防门门框上——和赵建国做过的动作一模一样。然后回到值班室,远程登录监控系统,找到走廊尽头消防门的画面,放大。排班表背面条款最下面那行碳粉颗粒在红外光下开始发光。是一行字,字体很小,很整齐,热转印碳粉特有的均匀光泽。
陆沉的实验数据是错的。管理账户的激活不需要九十天。只需要一个人签一个字。但观察者账户的激活需要另一个人签另一个字。陆沉签了量产确认书——那是管理账户的激活签名。但观察者账户需要另一份确认书。我在十二年前就签了。用热转印碳粉签在每一栋楼的排班表背面。你们看不到,但观察者账户看得到。管理账户是锁。观察者账户是钥匙。锁需要二十三把钥匙才能打开。但观察者账户只需要一把。一把就够了。我不知道钥匙是谁。也许是顾长庚。也许是赵建国。也许是今天拿着手电筒站在消防门前的人。如果你看到了这行字,观察者账户已经在你面前开过一次了。不要关掉它。观察者账户是陆沉写的代码里唯一没有错误的部分——因为它不是代码。是陆沉把管理账户的密码从“空值”改成“等”的时候,观察者账户自己生成的响应。代码不会自己生成响应。有人在代码外面写了响应。苏暮雪。
姚青岳把手机屏幕上的每一个字读完。然后他把排班表从消防门上取下来,折叠好,放进证物袋。封口,贴标签。他站在消防门前,门禁指示灯暗红色,和第一次来的时候一样。现在是深夜,没有雨。他转身走出值班室,经过走廊时看了一下自己的手。很稳。签字栏里那些姚青岳三个字,日期在上,签名在下,和他的习惯一致。暂时。
