林昼把那串时间同步到红栏时,屋里那块屏幕像被人用冷水擦过一遍,连边缘都透着一股更硬的白。
【07:12 查看满意度预览】
【07:18 查看外宣草案】
【07:21 查看回撤建议】
【07:29 查看协查摘要】
【07:41 查看红栏草案】
五条记录一条接一条钉在同一条线上,原本零散得像雨点,现在却像一根被拉直的钢丝。最先发出反应的不是人,是系统本身。红栏右下角那一小块灰色缓存区闪了两次,像是被这串时间逼得露了怯。
“它在改写查看痕迹。”周工的声音压得很低,却比刚才更急,“不是删,是重排。它想把这些记录拆成两个阶段,前半段归到正常浏览,后半段归到协查等待态。”
林昼盯着屏幕,没有立刻接话。
他看见的不只是重排,是劫持。
对方已经意识到遗留口子暴露了,于是开始借口子反过来抢门。查看请求、自动回执、等待态、旧缓存,这些本来只是残留的边角料,现在正在被串成一把临时硬钥匙。钥匙一旦成型,拿着它的人就能在不用重新签字的情况下,直接撬开二层冲刺窗口。
“硬钥匙在哪?”林昼问。
周工那边静了半秒:“在查看痕迹和回执模板的交叉位。它们把旧版回执模板留在缓存里,和临时查看请求做了自动拼接。只要拼接成功,系统会默认这把钥匙是合法的。”
“合法?”纪检联络员冷笑一声,“一个遗留口子拼出来的钥匙,也配叫合法。”
外宣主管站在门边,脸色比纸还白。他现在终于明白,自己刚才急着补的那份一致性说明,根本不是简单的口径文案,而是对方拿来钉住撤退动作的底板。现在底板裂了,裂口里却又冒出一把更危险的东西。
林昼把那份草案往桌上一压,指节敲了敲页脚。
“他们不是想把撤退写成合理吗?”他声音不高,“那就让他们自己承认,合理背后还有一把钥匙。”
话音刚落,屏幕上的红栏忽然跳出一条新的提示。
【查看痕迹与旧版回执模板已开始合并】
【合并结果:等待人工确认】
“来了。”周工低声说。
林昼眼神一沉。
人工确认,这四个字最要命。它意味着系统已经自动把拼接做到了最后一步,剩下的只差一个人点头。只要有人点下去,硬钥匙就会完成闭环,遗留口子就会从“被发现”变成“被默认”。
“谁会点?”纪检联络员问。
“外宣组不够。”林昼说,“他们现在想借第三方协查席位的查看权限,或者借值守员的复核痕迹。”
值守员脸色骤变,下意识后退了半步:“我没点过!”
“现在没点,不代表接下来不会被推着点。”林昼看了他一眼,语气却没变,“你刚才递来的草案,就是他们想借的入口。你没意识到自己站在门边,他们会替你把手放上去。”
这句话像把凉刀,直接插进屋里那点侥幸里。
周工的键盘声突然密了一截,像是在抢时间:“林昼,查看请求的来源变了。”
“变成谁?”
“不是第三方协查席位了。”他顿了一下,“是硬件令牌的本地复核端。”
林昼的眉峰倏地压下去。
本地复核端。
这就不是普通的页面查看了,而是把硬钥匙直接挪到了设备层。对方意识到在线痕迹会被抓,于是开始借本地复核端的信任链,想把那串旧查看记录和回执模板锁进令牌里。这样一来,就算网络层拦住了,设备自己也会替它承认那把钥匙是“应该存在”的。
“令牌是谁的?”纪检联络员立刻问。
林昼没有马上回答,他盯着屏幕上那条新跳出来的路径,目光一点点冷下去。
【硬件令牌-复核签入】
【旧缓存回调】
【查看痕迹合并】
【等待人工确认】
他想起第209章到场指纹里那枚被保卫科复核过的指纹,想起腕带门牌上线后每一次当面核验都要经过实体令牌签名,想起对方一次次没能从入口硬闯,最后还是把手伸向了最细的那一层缝。
“是我刚拿到的那批临时令牌。”林昼说,“或者说,是被他们动过手脚的那批。”
外宣主管的喉咙狠狠一滚:“不可能,那批令牌都登记了。”
“登记的是外壳,不是里面的引用关系。”周工打断他,语速快得像要追着屏幕跑,“他们把旧查看记录塞进了令牌的本地缓存,复核端一旦读取,就会默认触发合并。也就是说,遗留口子现在开始劫持硬钥匙了。”
这句话落下去,屋里短暂地静了一秒。
不是因为听不懂,而是因为听懂了之后,所有人都知道麻烦已经换了层级。原先他们以为对方只是想借文字、借口径、借回执,没想到对方连实体钥匙都敢下手。硬钥匙一旦被劫持,整个窗口就会从“看得见的流程”变成“看不见的默认”。
林昼伸手把桌上的临时令牌盒拖到面前。
黑色防震盒,编号贴得整整齐齐,封签没破。表面看上去没有任何问题,可他知道,问题从来不在外壳。
“把这批令牌的复核日志拉出来。”他说,“立刻。”
周工迅速执行,几秒后,日志页翻开,里面的时间点像一排细针。
【07:09 上电】
【07:11 读到旧缓存指纹】
【07:12 查看满意度预览】
【07:18 读取外宣草案】
【07:21 进入回撤建议】
【07:29 读取协查摘要】
【07:41 触发红栏】
“这不是随机顺序。”纪检联络员看得最明白,“它是一步一步把钥匙磨出来的。”
林昼点头:“先读旧缓存,再读草案,再读协查摘要,最后读红栏。每一步都在给前一步背书,最后把硬钥匙逼成闭环。”
外宣主管听得脸色发青:“可我们没授权它这么做。”
“你们没授权,不代表它没借别的东西。”林昼说。
他把那份《满意度回撤一致性说明(草案)》重新翻到页脚,那里那串极小的临时标记这会儿已经不只是查看席位编号了,旁边又多出一行自动生成的附注。
【本地复核端引用完成,建议进入签入确认】
“签入确认。”林昼重复了一遍,像咬住一块冰,“这就是他们要的人工确认。”
周工忽然抬头:“林昼,系统刚刚把‘人工确认’的按钮推到了临时令牌上。”
屏幕上,一枚灰白色的确认键缓慢浮出来,位置不偏不倚,正好压在硬件令牌的复核页最下方。那按钮设计得极其克制,只有两行小字:确认查看链一致,继续保持窗口准备。
看起来像提醒,实际上就是诱导。
只要有人把令牌拿起来,把手指放到那个确认键上,遗留口子就会借着本地复核端完成对硬钥匙的劫持。
值守员的脸已经彻底没了血色,他盯着那枚按钮,嘴唇发抖:“这、这跟我没关系,我没想按。”
“我知道你没想。”林昼看着他,语气依旧平,“可他们要的,从来不是你想不想,是你站得够不够近。”
屋外忽然传来一阵急促的脚步声,像有人正从走廊另一头快速过来。不是一个人,是两个人的步频,一快一慢,明显带着目的。
纪检联络员侧头听了两秒:“有人来了。”
“谁?”
“前台的值班副手,还有一个设备维护员。”
林昼目光瞬间沉下去。
维护员。
这意味着对方已经不满足于查看回执和等待态了,他们要借设备维护的名义,把临时令牌直接带走,或者在现场完成签入。只要盒子被拿出去,整个复核链就会更难追。
“拦住。”林昼说。
纪检联络员立刻转身出去。门一开,走廊上的冷白灯直接扑进来,把门框边缘照得发硬。
林昼没跟出去。
他知道自己现在不能离开屏幕半步。对方既然开始劫持硬钥匙,就不会只动一处。他们会在门外拖人,在门内抢确认,在缓存里继续拼接旧记录。只要他一转头,另一个缝就会冒出来。
周工的声音再次压过来:“林昼,硬件令牌的本地缓存里还有最后一个未展开字段。”
“什么字段?”
“来源追溯,指向的是……门牌页。”
林昼的瞳孔微微一缩。
门牌页。
第208章腕带门牌才刚把入口稳住,现在却被劫持链反咬了一口。原来硬钥匙不是凭空生成的,它还要借门牌页上的当面确认动作来完成最后一次合法化。也就是说,对方一直在等的,不只是查看红栏,而是等一个真正站到门前的人,用腕带、门牌、复核端三者把钥匙压实。
“他们想把入口变成钥匙。”林昼缓缓吐出一口气。
周工没答,显然也意识到了这层。
林昼抬手把屏幕切到门牌核验页,果然在公开层下方看见了一条极淡的灰线,像被纸磨出来的一道痕。那道痕本来不该出现在公开页里,可现在它在,而且正一点点和本地复核端对齐。
“把门牌页冻结。”林昼说,“同时把临时令牌的本地复核权限降成只读。”
“能降,但会触发提示。”
“触发就触发。”林昼抬眼,目光冷静得近乎锋利,“我要它们急起来。”
周工没再犹豫,手指飞快敲下去。
下一秒,屏幕上那枚灰白确认键猛地一闪,像被人抽走了半根线。门外那两道脚步声也在这时停住了,似乎是被前台拦下。可林昼知道,这不是结束,只是对方第一次没能按住确认键后的瞬停。
真正的反扑,还在后面。
“红栏继续挂着。”林昼说,“把遗留口子四个字,直接写在临时令牌旁边。”
外宣主管嗓子发紧:“这样会不会太直白?”
“就是要直白。”林昼看着那枚不断闪烁的按钮,声音不高,却像一颗钉子落进木板,“他们既然拿口子劫持硬钥匙,那我们就把口子挂出来,逼他们选。要么承认自己动过缓存,要么承认自己想借门牌页开门。无论选哪一个,都会留下新的债。”
门外忽然传来一声压低的争执,接着是维护员带着火气的解释:“我只是例行检查,不碰内容。”
林昼没有回头。
他知道,例行检查这种话,正是对方最喜欢的遮布。可现在,遮布已经被掀起一角,里面露出的不是整洁,而是旧记录、旧模板、旧确认链交织出来的一把硬钥匙。
而这把钥匙,已经开始在门缝里发响。
他盯着屏幕,缓慢而清晰地开口。
“通知前台,所有临时令牌暂停签入。”
“再通知信息侧,把今天所有查看动作做成单独封存包。”
“最后,把门牌页和令牌复核端的引用关系,提到红栏最上面。”
周工应了一声,立刻执行。
红栏刷新时,那串时间链下面又多出了一行更刺眼的灰字。
【遗留口子正在尝试劫持硬钥匙】
林昼看着这行字,没有任何停顿。
他知道,这不是系统给出的提醒,而是对手已经露出爪子的证据。遗留口子被发现之后,对方不再藏了,他们会直接扑向下一把钥匙,扑向门牌,扑向签入,扑向所有能让窗口合法化的东西。
而他要做的,就是在这把钥匙真正插进锁孔之前,把它连同藏在里面的旧缓存,一起拽出来。
走廊尽头,争执声忽然停了。
取而代之的,是一声极轻的电子提示音。
像是有人,真的按上去了。