李正洙在技术科干了七年,这是他第一次在上班时间不在机房。
尹海琳推开技术科的门,泡面味还在,服务器的嗡鸣声还在,但李正洙的工位空着。他的键盘上搁着半袋没吃完的虾条,电脑屏幕亮着,上面是一个数据库查询界面,光标在搜索栏里一闪一闪。她走近看了一眼——搜索栏里输入的查询关键词是“渡鸦”,返回结果为零。
他在查自己。
走廊里传来脚步声。李正洙端着一杯从自动贩卖机买的咖啡走回来,看到尹海琳站在自己工位前的时候,脚步停了一瞬。然后他继续往前走,把咖啡放在桌上,在椅子上坐下,动作和过去每一次她来技术科时一样——只是这一次,他没有差点把筷子掉进键盘缝里,因为他手里什么都没有。
“尹刑警,”他先开口了,声音比平时低了不少,“我知道你要来。昨天收网抓了七个人,名单上还剩三个在逃。但有一个不在名单上的人,你们还没找到。”
“谁?”
“‘渡鸦’。”李正洙把屏幕转过来对着她,上面是那个返回零结果的查询界面,“我今天早上搜遍了我能访问的所有内部数据库——人事档案、案件卷宗、通讯记录、排班系统。没有任何一个地方出现过‘渡鸦’这个代号。赵正浩的遗书里提到他,宋先生的供述里也提到他,但在系统里,他不存在。”
“你知道他存在。”尹海琳在他对面坐下。
李正洙把眼镜摘下来,用衬衫下摆擦了擦。他擦镜片的动作和赵课长一模一样——那是内务课和技术科通用的习惯,镜片上沾了太多服务器散热风扇吹起来的灰尘,不擦就看不清屏幕上的代码。
“我知道。”他说,“因为三年前赵正浩让我排查全厅泄密风险的时候,我发现了一个人。这个人在系统里留下的痕迹不是代号,而是一个频率——每隔一段时间,就会有人从外部IP登录沧溟站的调度服务器,查看排班表和巡逻路线。登录时间很短,每次不超过三分钟,登录IP每次都不同,用了七层代理服务器做跳板。我追踪了两年,追到第十七个IP的时候断了——不是因为技术问题,是因为那个人主动停了下来。”
“他发现了你在追踪?”
“不是。”李正洙把眼镜戴回去,镜片后面的眼睛直视着尹海琳,“他换了一种方式。他不再从外部登录,而是用了一个内部账号——我的账号。他不知道我已经发现了,还继续用我的权限查看信息。但他不知道的是,我在自己的账号底下埋了一个隐藏的日志记录器。每一次他用我的账号登录,都会被记录下真实IP和操作时间。”
他敲了一下键盘,屏幕上弹出一个加密文件夹。文件夹打开,里面是密密麻麻的日志条目,时间跨度从去年十月一直到今年三月。
“今年三月之后,他停了。”李正洙说,“就在韩周元被分配到沧溟站之后不久。他不需要亲自查看信息了——韩周元就是他在沧溟站的眼睛。他把这个功能外包了出去。”
尹海琳看着屏幕上那些日志条目。每一条都精确到秒,操作内容清晰可辨——查看排班表、下载巡逻路线、标记特定卡口的值班人员姓名。
“这些日志你保留了多久?”
“从发现的第一天开始。”李正洙的声音忽然有些发抖,“尹刑警,我不是在帮他。我是在等一个机会。他用了我的账号,我不敢告诉任何人——因为如果我说了,第一个被怀疑的人就是我。我只能等。等你来查。”
“为什么现在告诉我?”
李正洙沉默了片刻,然后把咖啡杯端起来喝了一口。咖啡很烫,他被烫得皱了一下眉头,但还是咽下去了。
“因为我昨天做了一件事。”他说,“收网行动开始之前,我监听到一通电话。是从这栋大楼里打出去的,打给了通关科科长的手机。通话时长只有六秒,够说一句话。我做了声纹比对——打电话的人和安站长音频里的声纹匹配度是百分之九十一。同一个人。”
他点开一个音频文件。扬声器里传出一个极短的片段,语气急促,像是在黑暗中对着手机低吼:“他们来了,走。”
声音被压缩得有些失真,但语气里那种命令式的紧迫感穿透了所有的电流噪音。尹海琳把这段音频反复听了三遍。她认得这种声线——不是音色本身,而是那种在紧急情况下依然保持着逻辑感的冷静。这个人不是在下意识地喊叫,而是在精确地传递信息。
“声纹比对的对象是谁?”她问。
“我没有比对对象。”李正洙把眼镜推上鼻梁,“安站长音频里的声纹在系统里没有匹配——他是线人,内务课把他的身份信息从公开数据库里剥离了。所以我昨天半夜做了一件事。我用了一个离线版本的声纹比对工具,把这段音频和我能拿到的每一个人的声纹样本进行了比对。全厅有三百多个人,我跑了一整夜。”
“结果呢?”
李正洙没有回答。他站起来,从工位旁边的铁皮柜里拿出一个上了锁的铁盒。打开铁盒,里面是一块硬盘,硬盘外壳上贴着一小条医用胶布,胶布上用圆珠笔写着一行小字——“比对完成·唯一匹配”。
“唯一匹配。全厅三百多个人,只有一个人的声纹和这段音频吻合。而这个人——”他把硬盘放在桌上,手指按在硬盘外壳上,指节发白,“在一个月前就已经被列为双头蛇案的证人。”
尹海琳的瞳孔收缩了一下。证人。这个案子里被列为证人的人不多——朴正泰是证人,技术科的部分警员是证人,港务局举报热线的接线员是证人。而有一个人,他从一开始就被视为受害者,被宋先生追杀的受害者,被赵正浩层层控制的受害者。他就是安成浩。
但那段音频不可能是安站长的。安站长在收网行动前一直躺在釜山海洋医疗中心的加护病房,身上绑着心电监护仪的电极,病房门口有警员二十四小时看守。他没有手机,没有网络,没有任何可以和外界通讯的工具。
“你在想录音里的不是安站长。”李正洙的声音很低,低到像是只说给她一个人听的,“但声纹匹配不会说谎。音频里的声音是安站长的声音——但不是安站长本人说的。”
“什么意思?”
“意思是他不是同一个人,但他的声纹是同一个。”李正洙点开一个技术文档,手指在屏幕上飞快地滑动,“声纹就像指纹,每个人的声带结构、口腔形状、发音习惯都是独一无二的。双胞胎都不会完全一样。能在声纹比对中和安站长达到百分之九十一匹配度的人,在生物学上几乎不可能存在——除非是用了AI语音合成,用安站长之前的录音样本训练出来的。”
尹海琳站了起来。她的手指在身侧握紧,指甲陷进掌心里。AI语音合成。这意味着有人拿了安站长的录音样本——审讯录音、电话监听、或者沧溟站调度室里长年累月的对讲机通讯记录——把这些音频喂进了一个语音合成模型里,然后生成了一通听起来像是安站长打给通关科科长的示警电话。
而这个人做这件事的时候,安站长本人正躺在医院的床上,身上插着管子,连翻身都需要护士帮忙。
“音频合成的技术门槛有多高?”她问。
“对普通人来说很高。对系统管理员来说——只是几个命令行的事。需要的只是一段足够长的原始音频素材。”李正洙把眼镜摘下来放在桌上,用手掌揉了揉眼眶,“尹刑警,三年前赵正浩让我排查泄密风险的时候,我发现了‘渡鸦’存在的痕迹,但我没有上报。不是因为我想保护他,是因为我自己也被他利用了——他用我的账号做事。如果我说出来,没人会相信我。这三年来我一直坐在这个机房里,给所有人递线索,帮你、帮副厅长、帮赵正浩——但我从来没有主动说过一句话。因为我不知道说了之后,谁会信我。”
“你知道‘渡鸦’的真实身份吗?”
李正洙把手从眼睛上移开。他的眼睛有些发红,不是因为哭过,是因为通宵跑数据比对之后干涩的充血。
“我只能告诉你他不是谁。”他说,“他不是你,不是副厅长,不是林秀赫,不是赵正浩,不是韩周元,不是宋先生,不是通关科科长,不是港务局副局长。名单上的十七个人我都用日志里的IP比对过了——全部不匹配。这个人的内部账号是最高权限级别的,能直接访问调度服务器的底层日志。全厅有这种权限的人只有三个:厅长,副厅长,技术科系统管理员。”
“而你就在技术科。”
“对。三个系统管理员,我是其中之一。另外两个——一个是五十八岁的老工程师,去年就退休了,现在在济州岛开民宿。另一个——是从教育训练科调过来的,平调时间就在去年十月,和港务局通关科的人事调动同时。”
尹海琳的大脑在那一瞬间飞快地运转。去年十月,教育训练科原科长平调去了港务局通关科,接替他位置的人是谁?那段时间恰好是赵正浩在全厅排查泄密风险之后,也是韩周元刚被分配到沧溟站不久。而这个人平调去了技术科——从一个管人的部门,调到了一个管信息的部门。
“那个人叫什么名字?”
李正洙在键盘上敲了几下,调出了技术科的人事档案。屏幕上弹出一张照片——一个四十多岁的男人,国字脸,戴一副无框眼镜,表情温和,看上去像是任何一间办公室里最不起眼的那个同事。
“崔敏秀。从教育训练科副科长平调来技术科,任系统管理员。调动时间是去年十月十五日。”
尹海琳盯着那张照片。她见过这个人——在过去几周里,她在走廊里、电梯里、食堂里都碰到过他。他每次都朝她微微点一下头,不多说一句话。一个安静的中年男人,端着搪瓷杯在茶水间里泡速溶咖啡,动作和沧溟站的每一个人都那么像。
“他现在在哪?”
“今天早上请了病假。”李正洙切换到一个考勤系统界面,“理由是急性肠胃炎。但就在二十分钟前,他的门禁卡在厅里后门的读卡器上刷了一下。他没有进大楼——他出去了。”
李正洙放大屏幕上的一张平面图,是海洋警察厅的楼层结构。后门外是一条通往港口仓库区的窄巷,没有监控,没有照明,晚上连路灯都是坏的。那条巷子尽头是一个废弃的码头泊位,曾经在八十年代用来停靠渔船,现在只剩下几根锈迹斑斑的水泥桩和一片长满牡蛎壳的防波堤。
“后门出去的人不会经过安检。”尹海琳盯着平面图上的那个窄巷出口。
“不会。那条巷子不在巡逻范围内,门口的监控摄像头坏了三个月,维修申请交上去了三次,每次都被内务课驳回。”李正洙顿了一下,“驳回人——是赵正浩。”
尹海琳直起身,从口袋里掏出车钥匙。李正洙在后面叫住她。
“尹刑警,我需要问你一件事。”他的声音在机房的嗡鸣里显得有些孤单,“如果崔敏秀就是‘渡鸦’,你会怎么办?”
尹海琳站在技术科门口,回头看了他一眼。
“我会问他一个问题。”她说,“他用了你的账号三年,为什么今年三月忽然停了。”
她走出技术科,在走廊里拨通了副厅长的电话。“崔敏秀。教育训练科副科长,去年十月平调技术科系统管理员。李正洙的日志显示他一直在用别人的账号访问沧溟站服务器。今天早上他请病假,但二十分钟前他的门禁卡刷开了后门。他出去了,没有进大楼。”
副厅长在电话那头的沉默只有两秒。
“崔敏秀今天早上给我发了一封邮件。”他说,“是一封辞职信。正文只有四个字——‘到此为止’。发件时间凌晨四点零三分——就在收网行动开始之后三分钟。”他顿了一下,“他是在确认收网成功了之后,才发的辞职信。”
尹海琳推开后门走进窄巷。海风迎面扑来,带着从港口仓库区飘过来的铁锈和死鱼混合的腥臭味。巷子地面铺着坑坑洼洼的水泥砖,砖缝里长满了枯黄的杂草。她的鞋跟在砖面上敲出单调的回响。
巷子尽头,废弃码头的防波堤上坐着一个人。崔敏秀脱了外套,只穿着一件白色衬衫,衬衫下摆被海风吹得猎猎作响。他坐在一个生锈的系缆桩上,双手搁在膝盖上,望着远处晨光中的釜山港。
“崔敏秀。”尹海琳在他身后几步远的地方站住。
他没有回头。“尹刑警,你来了。”他的声音很平静,和走廊里偶尔碰到时说的那句“早上好”的语气没有任何区别,“李正洙花了多久?我猜他从昨天晚上就开始跑了。”
“跑了一夜。比对全厅三百多个人的声纹。唯一匹配——是你。”
崔敏秀点了点头,像是在确认一个他早就知道会被确认的事实。“我用的合成器是我自己写的。用安成浩过去三年在调度室里的通话录音做训练集,语气、重音、停顿,全部都能还原。一般人听不出来。但声纹比对——那是机器看机器,跑不掉。”他把两只手摊开放在膝盖上,看着自己的掌纹,“我从去年十月就知道会有今天。收网开始,名单落网,声纹比对。我做好了所有的准备,只差最后一个——走。但我没有走。你知道为什么吗?”
“因为你想知道结果。”
“对。”他转过头看着她。那张国字脸上的表情温和而平静,和她在电梯里碰到他时看到的完全一样,“我想知道你们能不能查到我。如果我走了,你们查到了,我这辈子都要想着你们查到的那个瞬间。如果我不走,我就能亲眼看到——看到我留下的所有线索,终于被你们捡起来了。”
尹海琳看着他的眼睛。那双眼睛里没有恐惧,没有悔恨,没有狡猾。那是一种她在这个案子里见过很多次的、但她第一次在“渡鸦”脸上见到的表情——疲惫。
“三年前,”崔敏秀转回去看着海面,“我被调来教育训练科。我负责分配新人的岗位。赵正浩找到我,说他需要一个‘干净’的人去沧溟站。我说好。我给他找了韩周元。我以为只是一个普通的安排——安排一个听话的人去边远岗位,这种事在系统里太常见了。然后他让我查安成浩的底细。我查了,发现安成浩在走私。赵正浩说不用管——安成浩是副厅长的线人。我信了。然后一年后我发现赵正浩自己也在走私。他说他在调查,我又信了。然后我发现我自己也在走私——不是货物,是信息。我查了每一个人的底细,然后把底细告诉了赵正浩,赵正浩告诉宋先生,宋先生用这些信息决定该收买谁、该除掉谁。”
他把两只手从膝盖上抬起来,捂住脸。声音从指缝里漏出来,闷闷的。
“韩周元跳海的那天晚上,我在机房里坐了整夜。他是我的学生。我把他招进来,我把他分配去沧溟站,我在他的档案里把一切都弄得干干净净。我安排他成为一个完美的棋子。然后他就从船上跳下去了。我到死都会记得他笑的那一下。”
海风从港口方向吹过来,在防波堤上打了一个旋,把他的衬衫下摆吹得猛烈地翻动。
“你为什么停了?”尹海琳问,“今年三月,你不再用李正洙的账号登录服务器。为什么?”
崔敏秀把手从脸上移开。他的眼眶是红的,但没有泪。
“因为林秀赫。”他说,“三月份林秀赫第一次在日志里出现了一段空白。赵正浩让我查他的底细,我查了。我查到他在为宋先生放行走私车。我也查到五年前那次台风——他救了十二个人。一个救了十二条人命的男人,现在在放行走私车。我忽然就想——我到底在做什么?我在帮一个走私集团盯着一个正在变成罪犯的英雄。如果我现在停,至少不用再看着林秀赫的脸。如果我不停——我就连自己都骗不过去了。”
他站起来,面对尹海琳。海风把他们之间的空气吹得很薄。
“我留了一个U盘。”他从口袋里掏出一个黑色的微型U盘,“里面是赵正浩和宋先生的所有加密通讯记录,还有港务局副局长这些年通过内部渠道修改过的全部通关记录。足够把在逃的三个人送进去。”
他把U盘放在系缆桩上,后退了一步。
“你刚才说你是来问问题的。”他说,“问吧。”
尹海琳走上前,拿起那个U盘。她的手指触到U盘外壳的时候,感到金属表面还带着崔敏秀口袋里的体温。
“你已经回答了。”她说。
崔敏秀愣了一下,然后他笑了。那个笑容很短,短到刚绽开就收了回去,像是在脸上放了一个火花,然后立刻熄灭。
“尹刑警,请帮我做一件事。”
“你说。”
“不要把我的名字涂掉。像赵正浩那样。把名单上十七个人的名字全部写上去——加上我。十八个。”他看着海面上正在进港的一艘货轮,阳光把他的脸照得很亮,“韩周元在海里,我一个人在防波堤上。我们两个,都没有资格被漏掉。”


暂无评论,来抢沙发吧!