哨兵与机械兽的撞击声在身后炸开,像一段被强行拖长的爆音。凌佳没有回头。她把网关节点压在锁骨下方,用布条勒紧,让它贴住皮肤。温度能让内部振荡器稳定一点,至少别在“degraded”状态里继续漂移。
脑内面板的倒计时还在走:
Policy TTL: 00:06:41
六分钟多。够她做一件事:把“临时活命”升级成“可持续活命”。
她钻进一段塌陷的地下管廊,混凝土像天然的屏蔽层,把风和尘雾隔在外面。这里温度更低,空气更湿,金属锈味浓得像旧机房。
她靠墙坐下,第一件事不是喘气,而是打开 DIAG 控制台,把日志抓到眼前。
只读滚动里,几行关键字段像钉子一样扎出来:
Nanodust relay: active //纳米尘埃中继器:已激活
Uplink origin: unknown / multi-hop //上行链路源:未知/多跳
Beacon sniff: anomalous //信标嗅探:异常
Key rotation: **spoof attempts (blocked by policy) //**密钥轮换:欺骗尝试(被策略阻止)
“多跳。”她在心里重复了一遍。
多跳意味着:对方不是一个发射塔,而是一张网。要在网里活下去,你要么变成网的一部分,要么让自己在网里“不可见”。
她现在两样都做不了。Level-0 只能刹车,不能建新网。
但她能做第三种:用诊断口,摸清这张网是怎么呼吸的。
她把网关节点的维护盖彻底掀开,DIAG 口暴露出来。它不是常见圆形插头,而是扁平的双排触点,像某种军规快插。
她没有线。
她抬眼扫了一圈管廊:锈掉的钢筋、断裂的电缆、墙角滴水形成的潮湿泥线。她的视线停在一段被扯断的同轴电缆上。
同轴的结构很诚实:
中心导体
绝缘层
屏蔽层编织网
外皮
如果 DIAG 是差分通信(大概率),她需要两根信号线和一根参考地。她没有成对绞线,但屏蔽层拆开后能分成两股细编织,勉强当作两根对称线用,中心导体可以当作地参考,或者反过来。
“能跑数据就行。”凌佳咬牙。
她用金属杆划开外皮,剥出屏蔽编织层,把它拧成两股。再把中心铜线裸露出来,绕成一个“地环”。没有焊锡,她就用力缠绕、压紧,用碎石把接口处顶住,靠机械接触保证短时间不断。
网关节点轻轻震了一下,像不情愿地承认这根“野路子线缆”。
DIAG 控制台跳出一条新提示:
DIAG: physical link detected //诊断:检测到物理链路
Console mode: extended (read-only) //控制台模式:扩展(只读)
**Counters available: RSSI / hop-latency / nonce stats //**可用计数器:RSSI / 跳数延迟 / 随机数统计
凌佳的呼吸一下子沉稳了。
“扩展只读。”但,这已经够她当场做一次网络侧写了。
她把注意力放到三类计数器上,像看一段活体网络的心电图。
面板里有个很粗暴但实用的统计:Hop latency histogram(跳延迟直方图)。
正常单跳链路,延迟分布会很尖,波动小。多跳网状中继,延迟会出现多个峰:一峰是近邻,一峰是远端经多个中继。
她盯着直方图,看到三个很明显的峰值段:
4–7ms
18–26ms
55–80ms
“不是一条链。”她低声说,“是三层。”
4–7ms 是近场尘埃中继。
18–26ms 是边缘汇聚节点。
55–80ms 像是更远的上层控制点,也许在废墟之外,或者在高处空平台。
她又看 RSSI(接收信号强度)随时间的漂移曲线。曲线不是平滑衰减,而是呈现周期性起伏,每隔几十秒就有一轮“增强”。这不像固定发射塔,更像一组移动节点轮流当“强发射源”。
“他们在做轮值广播。”凌佳心里发冷,“防止被反制定位。”
这也解释了她先前看到的“发光颗粒”:灰雾不是环境,它是战术通信基础设施,是把空气变成总线。
她把视线转到认证日志。应急认证留下了审计事件:
Auth: emergency_on-site //认证:紧急现场
Token: none //令牌:无
Proof: bio-contact (weak) //证明:生物接触(弱)
Trace: enabled //跟踪: 已启用
**Signer required: Safety Officer module //**所需签署人:安全负责人模块
“Safety Officer module。”这不是一个人名,这是一个硬件模块。
她继续往下翻,看见一条被灰雾攻击反复触发却失败的记录:
Spoofed key rotation attempt blocked //已阻止仿冒密钥轮换尝试
**Reason: missing PUF response / module absent //**原因:缺少PUF响应/模块缺失
PUF。
凌佳背脊一凉,又忍不住笑出一点点火气——这不就是她熟悉的工程安全:物理不可克隆函数,用芯片制造微观差异生成唯一响应。你可以偷软件密钥,但你很难复制一个 PUF 的物理指纹。
所以“安全责任人签名”根本不是签名,是:
一块带 PUF 的安全模块(签名片)
插入网关节点,给出挑战响应
系统才允许更高等级权限,或者允许续期 TTL
而她刚才用血触发的“bio-contact”,只是低等级的现场证明,所以系统才给她十分钟,并且强制可追溯。
“凌茵不是‘人’那么简单。”凌佳喃喃,“凌茵是那块模块的持有人,或者是模块的注册名。”
她忽然想起自己脑内系统通知里的角色配置:总工程师、宿主、安全责任人。那不是玄学分工,是项目分工。
安全责任人掌握硬件根密钥。总工程师掌握系统架构。宿主……是被投放到现场、能让系统运行在陌生环境里的“执行载体”。
而她现在,正拿着没有签名片的网关节点,像拿着一台缺了 TPM 的服务器在战场上跑核心业务。
只读还不够。她需要让网关节点别在十分钟后彻底回滚,重新把哨兵放疯。
Level-0 不允许她延长 TTL。
但工程系统里,TTL 的倒计时往往不是“许可”,而是“心跳”。如果网关持续收到某种本地心跳(maintenance heartbeat),它会保持当前策略,至少不会立刻回滚到最危险的默认值。
她找的是这个:maintenance heartbeat。
DIAG 扩展里果然有一项:
Maintenance heartbeat: not present //维护心跳:不存在
Fallback timer: active //备用计时器:已激活
If heartbeat present: allow policy hold (max 60 min)
**//**如果存在心跳:允许策略保持(最长60分钟)
凌佳的眼神一下子变锋利。
“心跳在哪来?”她快速扫配置注释(系统很贴心地给了一句短说明):
Heartbeat source: local power + signed module OR local console cable in service mode
//心跳源:本地电源 + 已签名模块或处于服务模式的本地控制台电缆
她没有签名模块。
但她有控制台电缆——就是她刚刚拧出来的那根“同轴差分线”。
“service mode。”这是工程师留的后门,不是给敌人的,是给抢修人员的。前提是:你得在现场,插着线,冒着被炸死的风险。
她把线缆另一端的三根裸铜重新分配:两股编织当差分数据,中心导体做地,外皮残留铝箔做屏蔽参考。她用管廊里一段还带电的应急灯电容(残余电荷微弱)做一个粗糙的稳压缓冲,让网关节点不要因为接触抖动频繁掉链。
她深吸一口气,按下控制台里的唯一一个“可请求”动作:
Request: enter SERVICE MODE (read-only, heartbeat enabled)
//请求:进入服务模式(只读,启用心跳)
系统弹出风险提示:
SERVICE MODE will broadcast a predictable maintenance pattern.
//服务模式将广播可预测的维护模式。
Risk: easier direction finding. //风险:更容易被定位。
凌佳盯着 TTL:00:04:12。
她叹了口气,她没有选择。
确认。
网关节点发出很轻的“嗒”声,像继电器吸合。蓝光变成更细、更稳的常亮线,震动频率也变得一致。
面板更新:
Maintenance heartbeat: ACTIVE //维护心跳:活动中
Policy hold window: 00:59:59 //保单持有窗口:00:59:59
Beacon power: LOW (unchanged) //信标功率:低(未改变)
**Trace: still enabled //**跟踪:仍处于启用状态
她把十分钟换成了一小时。
代价是:她在灰雾网里挂起了一个“可预测维护心跳”。敌人更容易嗅探到她,但她也终于有了时间做真正的事:找签名模块,找凌茵,找出灰雾的上层控制点。
她靠在管廊墙上,第一次允许自己把气吐干净。胸口的网关节点像一颗冷的心,规律地跳。
可就在这一刻,DIAG 面板最底部跳出一条新事件:
Listener count increased //监听器数量增加
Direction finding: converging //测向:收敛
**Estimated arrival: 7–9 min //**预计到达时间:7 - 9分钟
凌佳眼皮一跳。
“果然。”她声音低得像在和自己对话,“维护心跳把他们引来了。”
她把那根临时数据线重新在手腕上缠了一圈,像把自己的命系在一段粗糙的铜线上。然后她站起身,沿着管廊更深处走。
一小时的活命窗口不是救赎,只是更长的战斗时间。
而她要做的下一件事,已经清晰得像代码注释:
找到“安全责任人模块”。
或者——在找不到的情况下,自己造一个能骗过 PUF 检测的替代物。
她的眼神冷下来,像在黑屏的终端前敲下回车。
“既然你们把世界改成了网络,”她在心里说,“那我就按网络的规则活。”
管廊尽头的黑暗里,有水滴落下,像倒计时的秒针。