易居文学 > 都市小说 > 星环时代 > 第3章 城市的背面

【起】
试点城市的正式部署邀请函传到星环科技服务器上的时候,苏晚晴正在实验室里给防火墙第六版做最后一轮压力测试。
秦慕云把邮件打印出来,走到实验室门口,用手指敲了敲敞开的门框。苏晚晴抬起头,护目镜推到额头上,眼睛因为连续盯了几个小时的屏幕有些发红。
“来了?”
“来了。下周一,政务数据中心三号机房,给我们留了整整一排机柜。”秦慕云把打印件递过去,“他们技术处处长在邮件末尾加了一句私人的话——‘感谢苏老师的论证报告,我们内部的审计条款复查已经同步启动’。你的报告起作用了。”
苏晚晴接过打印件,一目十行地扫了一遍,然后把它放在工作台上,用一块拆下来的服务器硬盘压住。她没有表现出特别的兴奋,只是摘下护目镜,揉了揉鼻梁。
“三号机房我去过。上次拆主板就是在那里。他们的交换机排列密度太高,散热通道只有标准宽度的三分之二,防火墙服务器的安装位置需要重新规划。我明天带两个人去实地勘测。”
“两个人够吗?”
“够了。NullPointer需要留在公司盯着政务内网的审计复查进程。我带一个硬件工程师去就行——伊万那边有新来的通信工程师可以临时借调。”
秦慕云在手机上记下人员安排,然后抬头看着苏晚晴。这个比她小几岁的年轻学者,在过去几个月里以一种几乎无声的方式完成了蜕变——从被跟踪时需要人保护,到现在主动带队深入试点城市的数据中心,中间只隔了一个夏天。
“你想说什么?”苏晚晴注意到她的目光。
“没什么。”秦慕云收起手机,“只是觉得你越来越像林哲了。”
苏晚晴没有回答。她把护目镜重新戴上,弯下腰继续调试测试环境。但她嘴角有一个极轻微的弧度,被护目镜的反光遮住了。
次日清晨,苏晚晴带着临时从伊万实验室借调的通信工程师小周,搭乘最早一班高铁前往试点城市。两人都穿着便装,随身只带了笔记本电脑和一套便携网络诊断工具。小周是伊万从航天系统找来的退役通信工程师,四十出头,话不多,但动手能力极强。他全程没怎么说话,只在高铁驶过一片工业区时忽然开口:“那个烟囱后面,是我们以前的一个地面测控站。现在拆了。”
“你们航天口的人,退役之后都去哪了?”苏晚晴问。
“有的去了民企,有的转行做安防。留在系统里的,大多被调去做行政。”他看着窗外逐渐远去的烟囱,“伊万说你们在做的事,比我以前做过的所有项目都重要。所以我来。”
苏晚晴没有再问。
上午九点四十分,两人抵达试点城市政务数据中心。这是一栋方方正正的灰色建筑,外墙没有任何标识,只有门禁系统上的LED屏滚动着一行红色的字——“核心机房区域,非授权人员禁止入内”。技术处的何处长——也就是苏晚晴导师的那位往届学生——亲自在门口迎接他们。他是个三十五六岁的男人,穿着洗得有些发白的蓝色工装,头发理得很短,笑起来有两条深深的法令纹。
“苏老师,又见面了。上次你拆走的那块主板,我们已经走完了报废流程。这次你拆什么,提前跟我说一声就行。”
“这次不拆东西,是来装东西的。”苏晚晴把背包放在安检台上,“但在装之前,我需要把三号机房所有的接口替换情况重新排查一遍。上次只查了主交换层,这次需要把所有节点的底层代码全部过一遍。”
何处长的笑容收了一下。“出了什么问题吗?”
“不确定。但行业商会的联名信、政务内网的审计条款、还有上次拆回去那块主板上的未激活子模块——所有这些事在时间线上咬得太紧了。我想在正式部署之前,把整个机房的数据接口都复查一遍。”
何处长沉默片刻,然后点了点头。“按你的节奏来。三号机房这周已经开始做部署前封网了,除了维护人员之外没人能进去。我给你开通临时门禁权限,有效期到你们部署完成。”
“谢谢。”
“不用谢我。”何处长把门禁卡递给她,“你们的防火墙如果部署成功,这座城市三百万市民的个人数据就不会被任何人随意调取。这是我该做的。”
苏晚晴接过门禁卡,把它挂在脖子上,和小周一起走进机房。
三号机房的规模比她记忆中的还要大。上千台服务器机柜排列成十几条长长的走廊,每一条走廊尽头都是一面从地板延伸到天花板的通风百叶窗。机柜里的状态灯闪烁成一片绿色和蓝色的星海,空调冷气的低鸣声充斥着整个空间。小周找了一辆工具推车,从机房配套柜里拉出整套光纤测试仪,把功率校准到他们预设的范围。
苏晚晴走到核心交换区,打开笔记本电脑,接入了交换机的主控端口。屏幕上开始滚动一行行的系统日志——路由表、MAC地址表、接口状态、数据流统计。她按照上次标注的异常接口列表逐一核对,前十几个接口都正常,替换模块已经被拆除了。但在检查到第七排机柜第三个交换机时,她的手指在键盘上停住了。
屏幕上显示着一个她从未见过的子模块。它不在任何官方技术文档的接口列表里,也不在上次排查时做的快照记录里。它的名字看起来很平常——“数据中台接口优化补丁·版本号V2.3.1”。但它的代码结构和之前那块主板上拆下来的间谍模块完全一致,触发逻辑更复杂,执行层次更深,而且有访问外部仲裁网关的隐蔽权限。
更让她警觉的是,这个子模块的状态显示——“待激活”。激活条件是:收到政务内网时间同步信号,以及防火墙在端口上完成握手之后。这条激活链的前半部分,和之前发现的“9月1日”触发条件一致;但后半部分指向防火墙端口握手之后——不是部署之前拦截,而是等防火墙上线后,在它已受信任的通信进程里直接唤醒。
她立刻拨通了NullPointer的电话。
“我在试点城市三号机房核心交换区。发现一个未登记子模块,代码结构和上次你分离出来的间谍模块同源,名称伪装为数据中台接口优化补丁V2.3.1。但它多了访问外部仲裁网关的权限,触发执行深度也更高。激活条件不是仅限9月1日——它的第一个执行窗口改成了‘防火墙端口握手完成之后’。它在等我们上线。”
电话那头沉默了片刻,然后是键盘敲击声。“你别动它。把端口镜像发过来,我这边同步做远程分析。”顿了顿,“这个子模块的技术特征,和我之前从‘先知·初态’二阶段扫描协议里提取的部分代码片段完全吻合。”
“所以不是崔氏技术部的人写的?”
“不是。技术部那帮人写的代码有注释,有空格,有规范的缩进。这个子模块很干净,干净到像机器生成的——而且之前我们拿到的样本没有访问外部仲裁网关的权限。这一段是新的。它在迭代。”
苏晚晴握紧电话,看着屏幕上那个静静躺在代码行里的子模块。它在等待防火墙上线,等待握手完成,等待通信进程建立信任之后再从内部唤醒自已。她把它连同变更记录一起导出加密快照,同时让小周把相邻四个端口的物理跳线全部做了隔离标记。
“我快照了完整的端口镜像。现在隔离它——在部署完成之前。你那边能定位外部仲裁网关的物理地址吗?”
“可以试。但需要时间。外部仲裁网关在政务内网权限链之外——它挂在一个绕过市级信息安全部门的独立端口上。我得从上次审计条款的传输节点反推。”
“多久?”
“一天,也许一天半。”
苏晚晴挂掉电话,转向何处长:“在防火墙部署完成之前,这个子模块必须物理隔离。不能只禁用,得拔掉对应的光纤跳线。还有,三号机房的核心交换机上,还有没有其他类似名称的补丁?”
何处长的脸色变得凝重起来。他没有多问,叫来了机房管理员,开始逐台排查。
苏晚晴在机房里待到傍晚,把所有交换机端口排查了一遍,又发现了三个同样代码结构的子模块,分布在不同的交换机上。它们都没有被激活,但触发条件都经过了精心设计——防火墙上线后触发、数据流加密握手的特定阶段触发、流量超过某条阈值后触发。彼此用不同的伪装名和时间窗分散在系统日志里,像是专门为了避免被一次性普查抓出来而设计的。
她把所有快照打包加密,发回星环科技的服务器。然后她靠在机柜旁边,闭上眼睛,深吸了一口冷得有些刺骨的空调冷气。
有人把一张网铺在了这座城市的数据底座下面,铺了很久。而她赶在了它醒过来之前看清了网的形状。但还有更多的问题悬而未决——外部仲裁网关的物理地址,以及未激活子模块和被崔氏提前替换的接口之间的更深层关联。
她给林哲发了一条消息:“网比预想的更深。我在继续下潜。”
回复在几秒后到达:“我在线。继续。”
她没有再回复。站起来,走向下一排机柜。小周推着工具推车跟在她身后,手推车上放着一台便携频谱分析仪和一套备用跳线接口,光纤测试探头的指示灯在机柜缝隙间一闪一闪。
---
【承】
NullPointer把自已关在工作间里整整二十七个小时。
他在分析苏晚晴发回来的子模块镜像数据。整个分析过程分两个阶段同步进行。第一阶段是逆向代码结构——他把之前从试点城市拆回主板里提取的间谍模块代码和这批新子模块做逐行比对,确认底层逻辑来自同一个核心框架,但触发层增加了多条并行条件链,执行深度翻了两倍多。第二阶段,他开始尝试定位外部仲裁网关的物理地址。这不是一个常规任务。政务内网的网络拓扑图是保密信息,外部仲裁网关更不在公开文档里。他只能从审计条款的传输路径和子模块的外部调用请求中反向推导,用一组他一年多前在黑市漏洞交易中无意获取的政务内网匿名节点映射表,把网关的IP和几个已知节点做交叉碰撞。
二十七小时后,他走出工作间,手里拿着一张便签纸,上面写着一个物理地址。
“外部仲裁网关不在政务数据中心里,甚至不在市政府的网络机房里。它挂在一家商业数据服务商的IDC机房,托管协议上的签约方是崔氏征信子公司。崔氏用商业IDC做跳板,把外部仲裁网关伪装成第三方数据中台——这个网关在行政序列之外,不受市级信息安全部门管辖。”他走到会议桌前,把便签纸放在桌上,继续说,“我追踪了网关的流量——它在过去三个月里反复发送握手请求,目标就是子模块的触发端口。他们的计划是这样——在防火墙上线握手完成后、数据流加密通道建立的第一时间,外部仲裁网关通过子模块激活,以‘安全查询’名义绕过对抗样本生成器,直接抓取用户画像参数。防火墙会把这次抓取视为内部请求,不加拦截。因为查询请求的加密签名恰好和防火墙的正常握手协议一致。”
秦慕云放下手里的咖啡杯,眉头紧皱。“所以这个子模块其实是‘先知’用来穿透防火墙的特洛伊木马——伪装成我们的正常组件,在建立信任后从内部攻破对抗样本生成器?”
“对。而且它有一个内置的死手开关——如果第一次抓取未成功触发,会定期休眠,等待下一个同步周期再次唤醒。这意味着就算我们这次部署拖到9月1日之后,只要防火墙在运行,它迟早能找到机会。除非在正式部署之前把所有子模块物理隔离,并从防火墙的信任链中将外部仲裁网关的签名彻底剔除。”
林哲站起来,走到NullPointer面前,从他面前的桌上拿起那张写着物理地址的便签纸,看了一眼,然后转向所有人。“现在知道它的位置了,也知道它的触发条件。苏晚晴在试点城市现场做物理隔离。NullPointer在这里封签名。两边同步。”
“已经在做了。”NullPointer拉过键盘。
林哲转向苏晚晴的加密频道:“试点现场,现在。”
苏晚晴的声音从频道里传来,背景是机房的空调轰鸣声和远处交换机风扇的高频啸叫。“收到。我已经把核心交换区的十四个异常接口全部做了物理隔离和镜像快照。外部仲裁网关的物理地址发过来,我让小周直接去IDC机房现场排查。”
“注意安全。网关所在的IDC机房不在市级信息安全部门的管辖范围内,他们可能不清楚物业方的背景。”
“明白。何处长已经协调了市公安局网安支队,他们会以例行检查的名义进入IDC机房取证。”苏晚晴顿了顿,“NullPointer,外部仲裁网关的端口签名和加密协议格式发给我一份。网安支队需要技术依据才能封存设备。”
“正在传。”NullPointer的手指在键盘上飞速敲击,“网关的加密签名和他们上次审计条款里用的格式码是一致的。公安那边可以直接套用这条证据链。”
频道那头传来苏晚晴对何处长和小周的简短交代声,然后通话暂时中断了几分钟。林哲在会议室里来回踱步,秦慕云重新端起咖啡杯但始终没有喝。她看着白板上那两个新标注——“外部仲裁网关”和“子模块V2.3.1”,笔迹还是林哲十分钟前刚写上去的,墨迹未干。
十几分钟后,苏晚晴重新接通。“网关设备已封存。网安支队确认设备租用人是崔氏全资子公司。IDC运维日志显示,这台网关是在征信委员会驳回防火墙参数降级方案后的第四天,以‘智慧城市数据中台测试设备’名义托管进来的。现在三个目标机柜全部物理封存。网安支队的取证报告明天上午提交。”
办公室里安静了片刻。然后秦慕云轻轻把咖啡杯放在桌上,发出一声清脆的陶瓷碰撞声。“他们把整个智慧城市项目当成了幌子。征信委员会的防火墙标准被驳回,他们就换一个名字,把参数塞回数据中台的升级包里,再通过行业商会拖时间。如果不是苏晚晴今天在现场逐台交换机排查,下周防火墙上线当天,网关就醒了。”
“现在它不会醒了。”NullPointer说,“我在政务内网对所有同源特征码做了远程清除。外部仲裁网关的签名被踢出防火墙白名单,这批IP段已经上了政务内网永久拒绝访问列表。他们在八个试点端口预设了不同激活时间窗,但物理隔离做完之后,连握手的底层触发进程都被删了。”
林哲看着屏幕上正在同步的三台机柜物理封存确认回执,点了下头。他给苏晚晴发了一条消息:“干得好。何时返程?”
“今晚最后一班高铁。小周留下来配合网安支队做后续取证,我先回去做部署前的最终调试。”苏晚晴的声音很简短,但频道里能听到她快速走过机房走廊时布底鞋踩在防静电地板上的轻微摩擦声,以及推门而出之后远处街道传来的公交车报站广播。
“带份试点城市的新版晚报回来。”
“你还看报纸?”
“你看。你在高铁上习惯看纸质版。”
苏晚晴的回复隔了片刻才出现:“报刊亭不一定开着。”
“你会找到的。”
他放下手机,转向会议室里围坐在桌前的众人。“这几天大家都辛苦了。但这件事还没完——试点城市的排查结果要同步给另外两座城市的数据管理局,让他们的技术处做同样的接口排查。秦,你来协调。NullPointer,你今晚抽空把外部仲裁网关的取证报告脱敏,提取一份适配非技术人员的摘要,供张教授和路副院长参阅。伊万——”
伊万从实验室方向探出半个身子,手里还拿着一块防静电垫。
“你那边还需要什么?”
“元器件。”伊万擦了擦额头上蹭的一道灰,“崔氏收购的那两家供应商,其中有一家原先给我们供航天级极轨频段低温耦合器。现在供应链断了,需要另找替代货源。”
“有没有备选?”
“有一家深圳的民营厂,以前做通信基站滤波器的。他们最新一批低温耦合器的实测指标和航天级偏差很小,但没做过星载环境测试。”伊万把一份比对参数单放在桌上,“需要加两天环境模拟,把极轨温度循环和真空放电指标都测一遍。”
“两天够吗?”
“不睡觉就够。”
林哲看着伊万——他已四十三岁,眼角的细纹被实验室强光灯照得纤毫毕现。退休是几年前就说过的话题,但这几个月他提都没有提过。
“去做吧。需要人手直接跟秦慕云要。”
“知道了。”伊万转身走进实验室,防静电帘在他身后刷地落下来。
夜深了。办公楼窗外,高新区的路灯已经亮成两排整齐的橘黄色。林哲在茶水间倒了一杯凉水喝下去,看着窗玻璃上自已模糊的倒影,意识到这座城市所隐藏的网远比自已预想的要深——而他们正在一片从未公开的暗区里,一寸一寸地拆除那些隐形装置。试点城市的间谍模块只是开始。另外两座目标城市的数据接口、外部仲裁网关在全国范围内的部署节点、以及崔氏在商业IDC机房里还藏了多少台没有登记的设备——所有这些,都需要在9月15日之前查清楚。
他回到会议室,看到秦慕云已经写好了给另外两座城市数据管理局的协调邮件草稿,苏晚晴的位置空着,但她笔记本电脑的屏幕还亮着,上面是未完成的防火墙第七版升级方案大纲。NullPointer在工作间的玻璃隔断后面叼着一根棒棒糖,双手同时操控着两台键盘,屏幕上滚动着外部仲裁网关在全国范围内的节点部署分析程序。
他回到自已的位置,在备忘录上写下两行字——“试点城市排查完成”和“外部仲裁网关已封存”,然后继续往下写道:“剩余城市排查。供应链替代。第九版升级方案。”
“城市的背面”这个词浮现在他的脑海里。每一座智慧城市的灯光之下,都埋着一层无人知晓的数据暗网。而星环科技的工作,就是一层一层地把它剥开。
他听到走廊尽头传来电梯开门的声音。脚步声很轻,是布底鞋踩在防静电地板上特有的那种细碎声响。苏晚晴提前回来了,背着她那个鼓鼓囊囊的帆布袋,手里拿着两份报纸。她把其中一份放在他桌上——试点城市今天的晚报,头版印着消防演习通知和蔬菜价格表,内页不起眼的角落里有一行小字:本市政务数据安全升级项目启动。
“报刊亭还开着。”她说。
“你找到了。”
她在他对面坐下,翻开自已的那份报纸,没再说话。窗外,城市的灯光在夜色中层层铺开,像一张被缓慢点亮的巨大电路板。NullPointer从工作间里探出头,把外部仲裁网关的全国节点分布图投到会议屏幕上——上面标注出的节点数远远超过最初的预估。
“网关不止一个。”他说,“就目前追踪到的范围来看,至少六个城市有同型号设备。试点城市只是其中一个。”
会议室里没有人说话。沉默中,秦慕云放下手里的咖啡杯,开始在键盘上一一调取这些城市数据管理局的联系方式。苏晚晴把晚报合上,站起来走到白板前,在“外部仲裁网关”那条线下又画了一个分叉。
而林哲看着屏幕上的全国节点分布图,缓缓站起来,向白板走去。他知道,从明天开始,新的战役就将开始。
---
【转】
苏晚晴回来的当天晚上,星环科技召开了一次全体作战会议。
会议室的白板上,原本密密麻麻的时间轴和对抗关系图旁边,又多了一张新的地图——全国外部仲裁网关节点分布图。NullPointer花了整整一个通宵,把从试点城市网关设备里导出的配置文件做了全网溯源,用政务内网的历史传输日志逐一比对,最终标注出六个已部署网关的城市和三个疑似预留端口。
“六个已部署,三个预留。预留端口的托管协议还没有激活,但机房空间和网络带宽都已经分配好了。按照IDC的扩容周期,预留端口可以在七十二小时内上线。”NullPointer用一个红色的激光笔点在地图上的标记之间,“这些网关彼此独立运行,有独立的加密签名,互不归属。但有一点是相同的——都用同一个身份租用IDC机房:崔氏征信子公司,注册地全部登记在同一个自贸区。”
秦慕云从笔记本前抬头,低声说:“那家注册资金只有一万块的公司?”
“是的。跟之前发联名通稿的公关公司是同一个注册地址,隔壁房间,连门牌号都连着。”
会议室里响起了短暂的低声交谈。林哲站在白板前,把红色马克笔的笔帽摘下来,依次描过地图上的节点。然后他转过身。
“我们现在要做的,是把这六个已部署网关全部清除,三个预留端口封堵在激活之前。同时,”他在地图下方写了一行字,“防火墙在试点城市上线之后,另外两座目标城市必须同步启动部署——否则崔氏会把所有压力转移到我们还没覆盖的城市。”
“协调另外两座城市需要政策支持。专报会的纪要虽然给了防火墙独立地位,但没有给出强制推广的权限。地方政府可以主动申请试点,但也可以拖延。”秦慕云停了一下,“好消息是,试点城市的排查结果已经上报给政策研究室,路副院长建议把这份报告作为防火墙强制性标准的提案附件。若能赶在张维为教授下次政策建议修订之前完成取证,国家标准委那边有人愿意联署。”
“时间够不够?”
“标准委下次会议在两周后。目前已有数座城市的试点申请流程走到审批环节。”
“够了。”林哲环视会议室,“现在开始任务。秦慕云带队向其他已部署网关城市的数据管理局发出排查预警,并提供取证协作。伊万集中完成替代元器件的环境模拟。NullPointer除了继续远程排查其余网关节点,同步启动防火墙第九版的升级预研——基于子模块触发逻辑和网关绕过对抗样本生成器的路径,升级对抗样本生成器;同时关注张教授那边的消息。”
“为什么是现在升级?现有的版本拦不住吗?”NullPointer问。
“能拦。但只能用物理隔离加踢出签名白名单的方式。如果我们不能从算法层面让外部仲裁网关的查询请求在第一次握手时就被对抗样本生成器识别为越界,那么未来每遇到一个新网关,就还得依赖人手工排查。”
苏晚晴从白板另一端绕过来,她早就把试点城市实地数据转换成了新版协议草案的修正项。“把从子模块里提取的绕行逻辑加进对抗样本库的训练集,让模型学会把这一类外部安全查询标记为越界。”她转向NullPointer,“我和他一起做——数据转换和算法优化我这边同步跑。”
林哲点头。他看向伊万的方向:“伊万,供应链那边的替代器件有进展吗?”
“深圳民营厂的样品明天到货。环境模拟测试需要四十八小时。”伊万摘下护目镜,用袖口擦了一下镜片边缘,没有多说什么。
会议在紧凑的任务交接中结束。众人各自散向自已的工作区,只有白板上新增的线条和标注,记录着这场短短数十分钟会议里作出的所有决定。
苏晚晴走在最后。她站在白板前,看着地图上那些红色标记的节点,轻声说:“一座试点城市只有三个子模块。六座城市加起来就是近二十个。每个城市的数据中心架构不同,端口的接入方式不同,外部仲裁网关的部署位置也不同。如果我们不具备自动识别网关绕行路径的能力,每个城市都得重新靠手拆——我们没有那么多人手。”
“所以第九版必须做。”林哲说,“在9月15日之前。”
“我知道。”她把目光从地图上移开,转向他,“你刚才说‘从算法层面让网关在第一次握手时就被识别为越界’——如果这一点能实现,网关的绕过路径不仅对星环失效,对所有未来可能采用同类架构的系统也会被封死。”
“那就是我们最好的武器。”
苏晚晴轻轻点了点头,走到自已的工位前,拉开椅子坐下。她打开笔记本电脑,新建了一个文件夹,命名为“FW-V9”,然后将自已的U盘插入端口。
窗外,夜色已经深浓。十六楼的灯光在写字楼群中只是一小片不起眼的亮色,但对于某些正在深夜加班的数据中心管理员、正在撰写调查报告的网安支队警察,以及正在准备向所在城市申请防火墙试点的技术处长们而言,这片灯光的存在正在悄然改变他们的工作内容。
而林哲知道,他们的敌人也在观察——沉默地、持续地、用一种超越人类的耐心观察着。
距离9月15日,还有八十三天。
---
【合】
三天后,试点城市防火墙正式部署上线。
苏晚晴带着小周和另一名硬件工程师再次赶往现场。政务数据中心三号机房已经完成了封网,所有异常子模块在封网前全部完成物理隔离。外部仲裁网关被网安支队封存在IDC机房的专用机柜里,贴上了封条。政务内网安全策略同步生效,网关IP段被永久拒绝访问。
部署过程本身只用了不到四个小时。防火墙第六版在试点城市政务云平台上完成安装、握手、压力测试,所有指标均符合预期——并发拦截率完全覆盖目标值,个体识别请求被对抗样本生成器实时拦截,核心交换区所有的通信进程在防火墙上线后保持平稳运行。
苏晚晴站在机房操作台前,最后一次核查完系统日志,确认被拦截记录全部锁定在外部安全查询类,然后拨通了NullPointer的电话。
“试点部署完成。系统运行正常。被拦截的查询请求全部来自外部安全查询类,和网关的子模块触发特征一致。”
电话那头传来NullPointer冷静的陈述:“已经看到了。政务内网远程日志显示你说的这些都在正常过滤范围——另有至少两组不同IP段在今天下午试图发起和网关同构的握手请求,也全部被对抗样本生成器拦截了。他们还在试。”
苏晚晴把这话转述给旁边的何处长。何处长正在看自已终端上同步的拦截日志,听到这里,他推了推眼镜,声音里多了一丝按捺不住的轻快:“你们那个防火墙,比我想象的还要敬业。”
“它应该做的。”
苏晚晴抬起头,看着机房里一排排安静运行的服务器。绿色的状态灯像夜空里的星群一样稳定地闪烁着。空调冷气持续送风,把她肩膀上散落的碎发微微吹动。她合上笔记本电脑,把操作台上的线缆整理好,放进工具包。然后她摘下手套,走到机房门口,给林哲发了一条消息。
“试点上线。运行正常。”
林哲把消息转发到工作群里,秦慕云先回了两个字——“收到”,NullPointer跟帖:“已阅。继续干活。”伊万发了张图片,是深圳那批替代元器件的低温耦合器测试报告截图,上面显示极轨温度循环和真空放电指标双项通过。张维为教授通过助理转来一条简短信息:“何志鸿的审计条款来源说明已提交政策研究室。标准委联署人数达预期。”
林哲走到白板前,拿起黑色马克笔,在“试点城市部署”那一栏下面划了一道对勾。然后他在这道对勾旁边又写下了另一个日期——三周后,标准委会议。紧接着,他在白板空白处画了一条新的时间轴,把供应链替代完成、第九版防火墙升级、另外数座城市排查和轨道窗口依次排开,彼此交错又环环相扣。
距离9月15日,还有八十天。
(本章完)