“你不是想复婚吗?”
程晚把平板推到我面前。
“先把我从你的监控里删掉。”
屏幕亮得刺眼。
那是我自己写的后台。
左侧设备列表里,有客厅门锁、卧室烟感、阳台摄像头,还有一个没有正式名称的灰色图标。
W-Phone。
程晚名字的首字母。
点开以后,是她过去四个月收到的所有消息通知。
发件人、时间、前两行内容,一条不少。
昨晚十一点零七分,她妈妈问她胃还疼不疼。
十一点十九分,她回复说已经吃药。
十一点四十三分,她的同事许棠发来一句:别心软,他那不是关心,是控制。
我盯着那行字,喉咙像被人掐住。
程晚坐在餐桌另一边。
她穿着米白色风衣,头发挽得很低,脸上没有愤怒。
这比她骂我更让我慌。
离婚六个月,她第一次主动进这套房子。
我以为她肯来,是因为我昨晚发的那句“我们再谈谈”。
桌上甚至摆着她以前喜欢的桂花拿铁。
她一口没动。
“你什么时候发现的?”
话一出口,我就知道自己问错了。
程晚笑了一下。
“所以你承认。”
“我没点开全文。”
程晚指尖压在屏幕上。
“所以你觉得,通知预览不算内容?”
“我只看有没有紧急的事。”
“我妈的胃药很紧急,许棠骂你也很紧急。”
她指尖点过屏幕。
“我和律师聊财产补充协议,你看了。”
“我和供应商改会议时间,你看了。”
“我凌晨睡不着,问医生能不能换药,你也看了。”
她抬起眼。
“周叙白,你还想看什么?”
我想说,我只是怕她出事。
两年前她在地铁里低血糖晕倒,手机摔坏,我找了她三个小时。
那三个小时把我身体里某根筋扯断了。
后来我把家里的智能网关换成公司测试版,又在她手机上装了家庭安全组件。
组件原本只负责识别诈骗链接和异常登录。
消息镜像是我私下加的。
第一次看见她到公司群里报平安时,我确实只想确认她安全。
第二次、第三次,我开始确认她在哪里,跟谁说话,为什么半小时不回我。
再后来,她问我是不是动过她的手机。
我说没有。
真正让婚姻结束的,从来不是程序。
是那句谎话。
“晚晚,我可以解释。”
“别这样叫我。”
她声音不重,我的手却僵在桌沿。
离婚前,她总嫌我连名带姓叫她太生分。
离婚后,我每一次喊晚晚,都像在偷以前的东西。
程晚将一只银色U盘放到桌上。
“这里有后台截图、登录记录和公证取证回执。”
“我今天不是来听解释的。”
“我要你当着我的面停用镜像,撤掉设备授权,删除云端缓存。”
“然后呢?”
我问得太快。
她看着我。
那目光里有一瞬间的疲倦,比厌恶更难受。
“没有然后。”
“你说过,愿意为复婚做任何事。”
“这是第一件。”
我攥紧手指。
“删完,你会考虑吗?”
“你又在跟我谈条件。”
她拿起包。
“那就算了。”
椅脚刚擦过地面,我站起来,挡在她和门之间。
她肩膀立刻绷紧。
我看见这个反应,脚下像被烫了一下,马上退开。
以前我总觉得,我拦住她是想把话说清楚。
此刻才明白,当一个人连离开都要经过我的允许,任何解释都只剩下压迫。
“你坐着。”
我把管理员令牌取出来。
“我删。”
程晚没有坐。
她站在两步外,看我输入二次验证。
系统弹出提示:
解除设备将永久终止数据同步,相关个人缓存将在二十四小时内清除。安全审计日志依法保留,不包含消息正文。
我的指尖停在确认键上。
这套程序陪我度过了离婚后的每一晚。
我没有给她打电话。
没有去她公司楼下。
没有敲过她新家的门。
我甚至以为自己克制得很好。
可我知道她几点下班,哪天头疼,周末和谁吃饭。
我隔着一块屏幕,占有她不知道的生活。
“舍不得?”
她问。
“不是。”
我按下确认。
灰色图标闪了两下,从设备列表里消失。
我又登录家庭网关,撤销她手机的旧凭证,生成删除回执。
最后,我把自己的管理员权限降为普通户主。
程晚逐项拍下。
她确认得很慢。
我第一次发现,她面对我时,需要像审核一份高风险合同。
“本地还有一份。”
我说。
她眼神瞬间冷下来。
我走到书房,把加密硬盘拿出来。
“缓存备份在里面。”
她伸手,我没有松。
“密码只有我知道。”
“所以?”
“我现在格式化。”
“我要看着。”
我点头。
进度条一点点往前走。
屋里安静得只剩主机风扇声。
到百分之百时,程晚的手机响了。
她看了一眼,没有避开我。
“罗总。”
电话那头说了什么,她脸色微变。
“我没有外传。”
“我今天可以到公司。”
“先停职?”
她握手机的手慢慢收紧。
“好,我配合调查。”
电话挂断后,我问:“出什么事了?”
她弯腰收起U盘。
“我们参与的市急救中心项目,底价和技术评分表泄露。”
“系统记录显示,文件从我的账号下载。”
我心里猛地一沉。
昨晚十一点五十六分,她收到过一条公司安全通知。
那时我没有点开。
我只看见预览里的半句:
检测到您的账户在新设备……
后面的内容被截断了。
我张了张嘴。
程晚看出了我的异样。
“你知道什么?”
我本能地想说不知道。
那是我最熟悉的自保方式。
可她身后的设备列表已经空了。
我再撒一次谎,就连站在这里的资格都没有。
“昨晚,我看见你收到过异常登录提醒。”
她的脸一点点白下去。
“几点?”
“十一点五十六。”
“来源呢?”
“通知预览没显示。”
“你为什么不告诉我?”
我答不上来。
因为那时我怕一开口,她就知道我还在看。
我宁愿守住自己的秘密,也没有提醒她可能正在发生的危险。
程晚盯了我几秒,眼睛发红,却没掉泪。
“你看了我几千条消息。”
“真正该说的那一条,你没说。”
门在我面前关上。
桌上的桂花拿铁还温着。
我站在被清空的后台前,第一次明白,全知并不等于保护。
有时它只是让一个胆小鬼,更方便地选择沉默。
1 失效的证据
程晚走后十分钟,我接到贺呈的电话。
“你今天不是请假吗?”
“临时有事。”
“市急救中心的项目出问题了。”
他语速很快。
“明砺医疗的评分表被泄给柏越,对方连我们安全子系统的报价都拿到了。”
我握住手机。
澄野安全是明砺医疗的技术合作方。
那套随车急救设备,需要通过我们的可信网关连接医院平台。
我负责安全架构,贺呈负责商务。
项目若被认定泄密,明砺出局,我们也会跟着丢单。
“谁泄的?”
我明知故问。
“听说锁定了一个产品经理。”
贺呈顿了顿。
“是不是程晚?”
我的沉默给了他答案。
“叙白,你别插手。”
“她的账号为什么会在新设备登录?”
“我哪知道。”
“我们的家庭测试网关,会不会转存企业应用的通知令牌?”
电话那头静了一秒。
很短,却被我听见了。
“家庭组件只抓系统通知。”
贺呈说。
“你自己写的东西,你问我?”
“运维后台有超级支持账户。”
“早停了。”
“什么时候停的?”
他笑了一声。
“你现在是以合伙人的身份问,还是以前夫的身份问?”
我望着黑掉的平板。
“有区别?”
“有。”
“合伙人该先保公司。”
“前夫才会在证据不清的时候往自己头上扣锅。”
我说:“把网关后台最近三个月的特权访问日志封存。”
“封存可以。”
“但你别碰。”
“你和程晚有婚姻关系,又参与过她家的测试部署,利益冲突写在脸上。”
他说得对。
越是对,我越觉得不安。
贺呈不是技术出身,却很懂得什么时候用正确的话堵住别人。
我给公司的合规负责人陶宁发了正式邮件。
要求冻结相关日志,由她和外部律师共同保全。
发完以后,我打开手机银行。
我和程晚离婚时分得很干净。
房子归我,我补她现金。
共同账户注销。
连订阅会员都逐个解绑。
只有一个每月十二元的云存储套餐,我一直没停。
因为账单日是我们领证那天。
过去我觉得这是念旧。
现在看,很多所谓的念旧,不过是不肯承认关系已经结束。
我取消了自动续费。
随后给程晚发消息。
“异常登录提醒是昨晚23:56。我已经要求澄野封存特权日志。”
发送失败。
红色感叹号格外醒目。
她把我拉黑了。
我换成邮件。
没有解释,没有求她回话,只写清时间和我做过的事。
下午一点,陶宁回复我。
日志已封存。
鉴于我与涉事人存在关系,禁止我接触原始数据。
我同意。
两点,明砺医疗发布内部通知,暂停程晚全部系统权限。
四点,合作项目群里有人贴出泄露文件。
我只看了一眼,就认出了不对。
评分表右下角有一串不可见水印被截图软件显了出来。
MZ-PM-07。
MZ是明砺医疗,PM是产品组。
07大概率对应程晚。
可文件里关于传输延迟的参数,是三周前的旧版本。
三周前,我们刚做完一次隧道掉线测试。
程晚在会上坚持把允许延迟从一百八十毫秒压到一百二十。
她为此和我吵了整整四十分钟。
“救护车开进隧道,医生手上的画面卡半秒,担风险的不是你。”
她当时把笔一放。
“你要成本,我要病人活着。”
最终我重新设计了缓存策略。
正式评分表采用的应该是一百二十毫秒。
泄出去的却写着一百八十。
这不是从她当前账户下载的。
至少不是完整的当前文件。
我把发现写进邮件,抄送双方合规和律师。
发送前,我删掉了“我确定”三个字,改成“建议核验版本记录”。
我习惯替所有人下判断。
如今连一句话,都得重新学习边界。
傍晚,程晚回了邮件。
只有一行:
收到,请不要私下联系我的同事。
我盯着“收到”看了很久。
它不是原谅。
但它是一条清楚的边界。
我回复:
明白。后续只走正式渠道。
半小时后,家门被敲响。
来人是许棠。
她是程晚的同事,也是离婚时陪她搬家的朋友。
许棠进门第一句就是:“程晚让我来拿那台测试网关。”
“她为什么不来?”
“因为她怕你又从她一个表情里分析出一整套复婚方案。”
她目光落到空掉的杯子上。
“你还买桂花拿铁?”
“顺手。”
“她两年前就不喝了。”
我怔住。
许棠嗤了一声。
“她胃不好,早换燕麦热饮了。”
“周叙白,你连她每条消息都看,却不知道她现在喜欢什么。”
这话比骂我变态更准。
我去设备间拆网关。
许棠跟过来,举着手机全程录像。
“别介意。”
她说。
“防你留后门。”
“应该的。”
她像没想到我会答得这么快,挑了下眉。
我拆下数据盘,装进防静电袋,又将设备序列号拍给双方律师。
“这台设备不能直接交给明砺。”
“为什么?”
“需要第三方做镜像,保证证据链。”
“你想拖?”
“我不碰原数据。”
我把设备放进透明封存箱。
“你们选机构,我付费用。”
许棠盯着我。
“你为什么付?”
“组件是我装的。”
“你是想赎罪,还是想借机插手?”
我沉默两秒。
“都有。”
“后一个念头,我会管住。”
她没替程晚接受,也没再讽刺。
临走时,她从包里拿出那杯没开封的燕麦饮,放到桌上。
“买多了。”
门关上后,我看到杯身贴着小票。
只有一杯。
2 被停职的人
第三方取证定在第二天上午。
地点由明砺选,在一家有司法鉴定资质的电子数据中心。
我到时,程晚已经坐在会议室里。
她身边有公司法务、合规负责人和许棠。
对面是澄野的陶宁与外部律师。
贺呈最后一个进门。
他西装笔挺,先和所有人握手。
轮到程晚时,他语气遗憾。
“程经理,发生这种事,谁都不愿意。”
程晚没有伸手。
“真相出来以前,不用替我遗憾。”
贺呈收回手,笑意没变。
“当然。”
鉴定人员当场检查封条。
我坐在最边上,没有碰设备。
工程师问网关架构时,我只回答公开技术部分。
说到消息镜像组件,会议室里安静下来。
“该功能是否经过设备使用人同意?”
法务问。
“最初安装安全组件时有概括授权。”
我说。
“消息通知镜像没有。”
“谁启用的?”
“我。”
“程经理是否知情?”
“当时不知情。”
程晚垂着眼,没有看我。
法务继续问:“该功能能够读取什么?”
“系统推送通知的应用名、发送时间、发件人和预览文本。”
“是否可能获取明砺医疗内部信息?”
“如果信息通过通知预览展示,就可能。”
“缓存存放在哪里?”
“家庭网关本地加密盘,同时向澄野测试云上传故障样本。”
陶宁猛地转头。
“测试云上传消息正文?”
“设计上会脱敏。”
“实际上呢?”
我看向封存箱。
“需要鉴定。”
贺呈手里的笔停了一下。
他很快接话。
“这个实验模块从没进正式产品,也没有商务部门参与。”
一句话把责任完整地推给了我。
我没有反驳。
因为最初的代码确实是我写的。
我甚至绕过评审,给自己留了管理员查看入口。
那时我告诉自己,家用原型而已。
我保护的是自己的妻子。
现在,“自己的妻子”六个字听起来像一张所有权凭证。
鉴定工程师做了全盘镜像。
他发现系统缓存目录在今早七点十二分执行过远程清理。
程晚终于抬头。
“你不是昨天当着我的面删了吗?”
“我删的是我的管理端和本地备份。”
我解释。
“云端缓存按系统策略,二十四小时异步清理。”
“远程清理是谁触发的?”
“可能是删除指令。”
“可能?”
她盯着我。
“你写的系统,你告诉我可能?”
我被问得哑口无言。
以前她最信我的,就是我对系统的确定。
家里路由器断线,她会在卧室喊一句“周叙白”。
我不管在洗澡还是开会,都会去修。
仿佛只要我在,所有故障都能得到一个答案。
可真正重要的这一次,我给不了。
工程师调出审计日志。
清理请求来自澄野运维网络。
使用的不是我的账户,而是超级支持账户S-ROOT。
陶宁脸色变了。
“这个账户去年已经下线。”
“凭证还有效。”
工程师说。
“凌晨两点十七分,它先导出过一份诊断包。”
程晚问:“包里有什么?”
“暂时不能确定。”
“目录索引显示,包含消息缓存、设备令牌和应用认证异常记录。”
她的指甲压进掌心。
我几乎要起身走过去。
腿动了一下,又停住。
如今我的靠近不会让她安心。
只会让她以为我还想控制场面。
程晚自己松开手,拿起笔。
“能查导出地址吗?”
“需要云服务商配合。”
“请写进取证清单。”
她的声音恢复平稳。
“另外,昨晚异常登录的设备指纹,也请与诊断包内的令牌调用记录比对。”
我看着她逐项发问。
哪怕被停职,被所有人当成嫌疑人,她也没有等待我救她。
她比我想象中更清楚该做什么。
或者说,我一直知道。
只是过去我需要把她想成容易出事的人,才显得我的监视有必要。
会议结束前,贺呈提出让澄野内部先做账户排查。
程晚立即拒绝。
“涉事超级账户属于澄野。”
“你们既是协查方,也是潜在责任方。”
“所有原始日志由第三方保全,任何一方单独取证,我都不认可。”
贺呈笑了笑。
“程经理现在没有代表明砺项目组的权限吧?”
这句话很轻,却精准地扎在她被停职的位置上。
明砺法务皱眉,没有替她说话。
我开口:“她有作为数据主体和潜在受害人的权利。”
贺呈看向我。
“周总,你今天最好少说两句。”
“公司可以和我切割。”
我说。
“但镜像功能、超级账户和测试云都来自澄野。”
“程晚有没有职务权限,不影响她要求保全涉及个人信息的证据。”
“你要在这里代表公司承认责任?”
“我只承认事实。”
贺呈脸上的笑终于淡了。
“你的事实,还是前夫的事实?”
我压住想反击的冲动。
“写进纪要。”
“由律师判断。”
会议室里没人说话。
陶宁先点头。
“这一段写进去。”
散会后,程晚在电梯前叫住我。
“周叙白。”
我停下。
这是离婚后,她第一次主动喊我全名,不是通过律师,也不是在邮件抄送栏。
“刚才谢谢。”
“别谢我。”
“那本来就是你该说的。”
她看了我一会儿。
“你以前不会这么说。”
“以前我会先算公司要赔多少。”
“现在不算了?”
“算。”
我扯了下嘴角。
“算完还是得说。”
电梯门开了。
她没有进去。
“你会失去澄野。”
“还没到那一步。”
“贺呈不会让你查下去。”
“那是他的选择。”
“你的呢?”
我看着她。
“我的选择是,不再拿保护你的名义,替你决定什么值得失去。”
她眼神轻轻晃了一下。
“别急着把话说得这么漂亮。”
“我会看你怎么做。”
电梯门再次打开。
这次她走了进去。
金属门合拢前,她补了一句。
“还有,别等我。”
我站在原地。
“好。”
门彻底关上,我才把后半句咽回去。
我不在楼下等你。
但该承担的事,我会做完。
不是为了换你回来。
至少这一次,我得先学会不把每一份付出,都写成向你索取的账单。
3 合伙人的价码
我回到澄野时,董事会临时会议已经开始。
长桌尽头空着我的位置。
贺呈坐在主位,投影上是市急救中心的暂停通知。
在泄密调查结束前,明砺与柏越都不得继续接触评审材料。
澄野作为明砺的安全合作方,同步暂停测试资格。
财务总监说,若项目流失,今年收入至少少三成。
投资方代表敲着桌面。
“周总,那个消息镜像到底是不是你私人开发的?”
“是。”
“公司知不知情?”
“代码没有走立项。”
贺呈接过话。
“叙白当时因为家属失联受过刺激,做了一个家庭安全实验。”
“测试云和运维资源属于公司。”
我说。
“超级支持账户也属于公司。”
贺呈侧过脸。
“所以你认为,是公司指使你监控前妻?”
“没人指使。”
“那就清楚了。”
他把一份声明推到我面前。
声明写得很圆滑。
我出于家庭原因,擅自使用公司测试环境开发未授权功能。
公司发现后已立即停用,并将配合调查。
作为交换,我暂时退出项目和日常管理,股权不受影响。
澄野承担云端管理疏失。
我承担所有越界行为。
乍一看,像一份体面的切割方案。
“签了它,公司会把S-ROOT的原始记录交给第三方吗?”
“依法配合。”
“什么时候?”
“收到正式调取函以后。”
“设备令牌可能还在被利用。”
我翻到最后一页。
“现在就应该冻结所有超级权限,通知受影响用户。”
技术副总低声说:“全面冻结会让八百多套测试设备离线。”
“那就离线。”
“有医院试点和养老社区。”
“先切远程访问,不影响本地安全功能。”
我看向他。
“这是预案里的一级事件。”
贺呈把笔帽扣上。
“一级事件需要确认密钥泄露。”
“一个已下线的超级账户突然活过来,导出了诊断包。”
“这还不够?”
“也可能是你。”
他终于把话挑明。
“你有源代码,有管理权限,有替程晚脱罪的动机。”
会议室里的目光同时落到我身上。
我没有愤怒。
从证据看,我确实是最合理的怀疑对象。
“S-ROOT的物理密钥有两把。”
我说。
“一把在我办公室保险柜,一把由运维负责人保管。”
技术副总脸色发僵。
“运维那把前年迁云时销毁了。”
“销毁记录谁签的?”
“贺总。”
贺呈靠在椅背上。
“你什么意思?”
“没什么意思。”
“我的密钥现在就能封存。”
我拿出保险柜钥匙,放到桌上。
“请陶宁、外部律师和投资方代表共同取出。”
“保管过程全程录像。”
“另外,立刻执行一级事件预案。”
贺呈说:“我不同意。”
我看向其他董事。
“那就表决。”
澄野是我和贺呈七年前一起创办的。
最难的时候,我们在城中村的两居室里睡折叠床。
他拉客户,我写系统。
我曾经坚信,贺呈可以把后背交给我。
他也确实替我挡过催债的供应商,卖过自己的车给公司发工资。
所以我不愿意在没有证据时怀疑他。
可友情和婚姻一样,不该因为过去有分量,就免于现在的审视。
表决结果四比三。
一级预案通过。
我的停职也同时通过。
我交出电脑、工牌和保险柜钥匙。
走出会议室时,贺呈追上来。
“叙白。”
他递给我一支烟。
我戒烟三年,没接。
“你知道全面停权一天要赔多少钱吗?”
“知道。”
“就为了程晚?”
“为了八百套设备。”
“少来。”
他把烟叼进嘴里,没有点。
“你要真公事公办,当初就不会写那个镜像。”
“正因为我写了,才知道一个自认为不会害人的管理员有多危险。”
贺呈眯起眼。
“你在怀疑我。”
“我在要求查所有有权限的人。”
“包括我。”
“包括我自己。”
他盯着我看了半晌,忽然笑了。
“离个婚,把你离成圣人了?”
“没有。”
我按下电梯。
“圣人不会偷看妻子的消息。”
“我只是终于没脸再装好人。”
电梯下行。
手机在口袋里震了一下。
不是程晚。
是母亲。
她问我晚上回不回家吃饭,又说网上有人传程晚泄密,让我别再护着她。
我回复:
事情没查清,别转发。
她很快打来电话。
“你姨都问到我脸上了。”
“晚晚离了婚还惹这么大麻烦,你别把公司搭进去。”
我停在写字楼大厅。
“妈,监控她的人是我。”
电话那头没声了。
“她的信息可能从我的系统泄出去。”
“你监控她干什么?”
“我做错了。”
“你那还不是担心她?”
我闭了闭眼。
这句话我自己说过无数遍。
从别人嘴里听见,才知道有多轻巧。
“担心不是许可。”
“别替我解释。”
母亲急了。
“那你也不能把责任全往身上揽。”
“该是谁的,就是谁的。”
我说。
“网上的东西别看,也别联系程晚。”
“尤其别劝她原谅我。”
挂断电话后,我站在玻璃门外。
秋风把领口吹得发冷。
七年前,我从这里搬进第一台服务器。
今天我被停职,连门禁都刷不开。
这是代价。
可我知道,还远远不够。
4 她的版本
程晚被停职的第三天,明砺召开联合说明会。
她没有项目权限,却带来了一本自己整理的版本册。
每页都标着文件生成时间、流转对象和参数差异。
泄露文件中的一百八十毫秒方案,并非三周前的正式旧稿。
它来自一次成本压力测试。
那份稿子只发给五个人。
程晚、技术总监罗岚、采购负责人严峰、澄野的我和贺呈。
“我的账户下载记录对应的是正式版。”
程晚说。
“正式版水印是动态生成的。”
“泄露截图上的MZ-PM-07,来自成本测试稿。”
明砺法务翻看原始邮件。
“你的意思是,有人把旧稿和你的下载记录拼在一起?”
“至少不能把二者当作同一份证据。”
她把两张放大图贴到屏幕上。
“还有这里。”
旧稿右上角有一个不起眼的蓝点。
那是她在文档模板上留下的版本标记。
正式版已经去掉。
罗岚问:“你为什么在模板里留蓝点?”
“去年有供应商拿错附件,导致一次测试延期。”
“我给每条草案加了不同位置的色点。”
严峰皱眉。
“这种个人标记为什么没报备?”
“因为它只用于我自己核对。”
“那也可能是你故意留的退路。”
程晚看向他。
“如果我要泄密,会选一份能直接指向我的文件?”
“也可能是反向自证。”
严峰步步不让。
他的部门负责控制成本。
一百八十毫秒方案正是按采购要求生成。
程晚没争辩,只说:“所以要查邮件服务器上的原文件。”
“不是听我解释。”
我坐在旁听席。
她这句话像在对所有人说,也像在对我说。
不要相信我声称的动机。
看我做过什么。
第三方鉴定报告随后公布初步结果。
异常登录使用了程晚手机上的企业应用令牌。
令牌曾在澄野测试云诊断包中出现。
昨晚被冻结的S-ROOT账户,至少访问过七台家庭网关。
其中三台属于明砺项目员工。
会议室一下炸开。
贺呈拍桌站起。
“这不可能。”
“澄野从未授权采集企业令牌。”
鉴定人平静地说:“我们陈述的是技术事实。”
明砺总经理脸色铁青。
“也就是说,你们通过家用设备监控了我们的项目组?”
“其他六台没有消息镜像。”
我说。
“诊断包采集的是应用崩溃信息,理论上不该包含有效令牌。”
严峰冷笑。
“理论上?”
我接受他的讽刺。
“设计失误和管理失控都存在。”
“我会承担。”
程晚忽然问:“七台设备是谁部署的?”
所有人看向我。
“我主持的员工家庭安全试点。”
“谁推荐参与者?”
“明砺行政与澄野项目组共同征集。”
“名单谁能看到?”
“双方项目负责人。”
她继续问:“为什么只有我启用了消息镜像?”
我的后背泛起冷汗。
“因为那不是试点功能。”
“是我私下启用的。”
“启用多久?”
“一年九个月。”
空气像被抽空。
此前报告只写了近四个月的可恢复记录。
一年九个月,是我第一次亲口说出完整时间。
程晚脸上没有表情。
她手里的笔却滚到了桌下。
我弯腰想捡,许棠先一步捡起来,放回她手边。
她在护着程晚。
也在提醒我,不该由我做这个动作。
“所以地铁那次以后,你一直没停。”
程晚问。
“对。”
“我问过你三次。”
“对。”
“离婚以后呢?”
我喉结发紧。
“也没有。”
她眼里终于浮出水光。
“为什么?”
这不是技术会议该问的问题。
可没人打断。
我说:“一开始,我怕你再出事。”
“后来我发现你在申请广州的岗位。”
她呼吸停了一瞬。
那是我们离婚前最大的争执。
她收到广州分公司的负责人邀约,没有马上告诉我。
我却在她还没决定时,质问她是不是早想离开。
“你不是看见我和许棠的聊天才猜到的。”
她声音发颤。
“你是直接看见了猎头消息。”
“是。”
“你还装作偶然问我。”
“是。”
“我解释了整整一夜。”
“你坐在那里,看我因为隐瞒一个没决定的机会向你道歉。”
每一个字,都把那晚重新钉在我面前。
我当时多么委屈。
我以为妻子要换一座城市,竟然没有第一个告诉我。
她抱着膝盖坐在沙发上,说她只是想等条件明确。
最后,她向我保证不会擅自决定。
而我明知道她没有背叛任何承诺。
我只是不能承认,真正隐瞒的人是我。
“对不起。”
“别用这三个字跳过去。”
她抬手抹掉眼泪。
“周叙白,我要你回答。”
“你从什么时候开始觉得,我连犹豫都必须向你报备?”
会议桌下,我的手握成拳。
不是对她。
是为了不躲。
“从我发现,知道你所有事能让我安心开始。”
我看着她。
“我把自己的不安当成你的责任。”
“把你的隐私当成我付出之后该得的回报。”
“你越想保留一点东西,我越觉得你要离开。”
“所以你真的离开了,我还在看。”
我的声音哑下去。
“不是因为我多爱你。”
“是因为我既承受不了失去你,也不肯承认我没有权利留下你。”
程晚眼泪掉了下来。
她没有低头,也没有原谅我。
“这才是实话。”
她说。
说明会结束时,外面围了记者。
有人已经把初步鉴定结果泄露出去。
“智能家居窃取企业令牌”的标题挂上本地热榜。
澄野股价没有可跌,投资方的电话却快把所有人打疯。
我被拦在侧门。
程晚从另一边出来。
闪光灯亮起时,有记者追问她是否利用前夫的系统窃取公司机密。
我下意识迈步。
她却先停住。
“我目前正在配合调查。”
“关于账号异常与数据泄露,请以联合鉴定结果为准。”
记者追问:“你和周叙白离婚,是因为他监控你吗?”
她脸色发白。
“这是私人问题。”
我走到她身侧,没有挡住镜头。
“监控行为由我实施。”
“程晚此前不知情,也从未授权。”
“所有责任以调查结果为准,但请不要把我的行为算在她头上。”
程晚转头看我。
我没有说“我是为她好”。
也没有说“我们仍有感情”。
这一刻,我能替她做的,只有把本就属于我的污名拿回来。
5 公开的人
视频当天晚上被转了几十万次。
有人骂我是控制狂。
有人说程晚享受技术便利时不反对,出事才装受害者。
还有人根据我们婚礼照片,扒出她父母住的小区。
我母亲打电话哭,说门口有自媒体堵她。
澄野要求我立刻发声明,强调消息镜像属于个人行为,与公司产品无关。
明砺则要求程晚保持沉默。
两家公司第一次如此默契。
程晚给我发了一封邮件。
主题是:有关公开回应的沟通。
她列出三条。
一,任何回应不得披露她的消息内容、健康状况和家人信息。
二,不得以感情、婚史和复婚意愿解释技术事实。
三,声明发布前,双方律师共同确认。
最后一句是:
如果你同意,可以加我工作微信。
我看了三遍,才点开那个熟悉的头像。
我们离婚时,她注销了私人微信。
工作号里没有朋友圈,备注一直是“程经理”。
好友申请通过后,她先发来一句:
只谈声明和调查。
我回复:
好。
然后把已经写好的三千字长文全部删除。
那篇长文里有地铁失联,有我的恐惧,有我这些年如何照顾她。
句句都是真的。
句句都在替我争取理解。
我重新写了一版。
只有事实、时间、功能范围和道歉。
初稿发过去,程晚圈出一句。
“出于对家人安全的过度担忧。”
她问:这句有必要吗?
我盯着屏幕,删掉。
“不必要。”
她又圈出“未造成实际人身伤害”。
“令牌泄露的后果还没查清。”
我删掉。
她圈出最后一句。
“恳请公众不要打扰程晚女士及双方家人。”
这次她没有质疑,只回复:
保留。
律师审核到凌晨。
声明准备发出时,贺呈打来电话。
“你一旦承认未经授权监控,公司融资就完了。”
“调查已经确认功能存在。”
“功能存在和你主观监控不是一回事。”
“你可以说是测试缺陷。”
“程晚怎么办?”
“她的泄密嫌疑还没洗清。”
贺呈停了一下。
“叙白,夫妻已经离了。”
“公司还在。”
我靠在窗边。
楼下那盏路灯坏了,忽明忽暗。
七年前,贺呈陪我在这间屋里调第一台设备。
他困得睁不开眼,还守到天亮。
“你说过,安全公司的第一笔收入,不该来自别人不知情的风险。”
我说。
“那是创业口号。”
“我当真了。”
“你现在承认,就是把刀递给对手。”
“刀是我自己磨的。”
我看着声明页面。
“不能因为会疼,就说它不存在。”
贺呈声音冷下来。
“如果投资方撤资,我会提议罢免你。”
“按章程走。”
“你为了一个不要你的女人,值得吗?”
我握手机的手慢慢松开。
“不是为了让她要我。”
“是她不要我以后,我也得做个知道边界的人。”
我按下发布。
声明很快刷出去。
评论涌进来。
我没有看。
程晚发来两个字:
收到。
过了几分钟,她又发:
谢谢你没有写地铁那次。
我回复:
那是你的经历,不是我的辩护材料。
对话框上方显示“对方正在输入”。
很久以后,却什么也没发来。
第二天,明砺也发布声明。
宣布程晚的账号存在被盗用可能,取消对她的单独停职,改为带薪配合调查。
她仍不能进入项目,但不再是被默认有罪的人。
这是第一份看得见的改变。
代价也随之而来。
投资方暂停下一轮注资。
三个客户要求解约。
董事会撤销我的联合创始人管理权限。
母亲在电话里问我,澄野是不是要没了。
我说,不知道。
她哭着骂程晚。
“她为什么非要把你逼到这一步?”
我打断她。
“不是她逼的。”
“声明是我决定发的。”
“可她要是肯私下解决——”
“妈。”
我第一次用这么重的语气叫她。
“她没有义务替我藏。”
电话里只剩抽泣。
我放缓声音。
“您可以怪我。”
“别去怪一个被我监控了一年九个月的人。”
晚上,我去母亲家。
自媒体已经散了。
她坐在沙发上,眼睛肿着。
餐桌摆着四菜一汤,全是程晚以前爱吃的。
“做多了。”
她别过脸。
我盛饭时,看见冰箱上还贴着程晚写的用药时间。
母亲有高血压,程晚每次来都会分好药盒。
离婚后,她没有再来,却把续方医生的电话留给我。
人与人的关系不是一句对错就能抹平。
她可以真心照顾过我的母亲。
也可以不再做我的妻子。
母亲吃到一半,低声问:“她是不是不会回来了?”
我夹菜的手停了一下。
“不知道。”
“你不是最会查吗?”
这句话没有恶意。
却让我一时咽不下饭。
“以后不查了。”
母亲抬起头。
我说:“她回来不回来,要等她自己告诉我。”
当天深夜,程晚发来一张截图。
有人把泄露文件的原始压缩包匿名投给媒体。
压缩包元数据里,创建者显示为我的英文名。
她问:
是你吗?
我看着那行“Author: Sean Zhou”,胸口发沉。
我回复:
不是。
几秒后,她发来:
我信你这次。
四个字让我比被所有人怀疑更难受。
因为我终于得到她的信任。
偏偏是在我最没有办法自证的时候。
6 嫌疑人
匿名压缩包让调查方向再次倒向我。
网安支队通知我配合询问时,我正在办理离职设备交接。
律师问我要不要等正式传唤。
我说不用。
我带上个人电脑和手机,主动过去。
民警把那张元数据截图放在桌上。
“Sean Zhou是你常用的英文名?”
“是。”
“压缩包由一套叫MirrorBox的工具生成。”
“也是你开发的?”
“是。”
“你有能力远程取得程晚的账号令牌?”
“过去有。”
“泄露发生时呢?”
“技术上仍有可能。”
律师在旁边轻咳了一声。
我知道他提醒我别主动扩大责任。
可“没有”是一个简单答案,也是一个不真实的答案。
我的管理员账户没有登录。
不代表我写的系统没有留下其他入口。
民警问:“你为什么泄露明砺的文件?”
“我没有。”
“为什么有人要伪造成你?”
“可能是转移调查。”
“也可能你先帮前妻脱罪,再把自己包装成受害者。”
“是。”
律师终于忍不住:“周先生的意思是,这是一种需要排除的假设,不是承认。”
我点头。
“我愿意提供设备和密钥。”
“但建议不要只看文件属性。”
我把MirrorBox的打包规则画在纸上。
这套工具会把大文件切成固定数据块,再按设备性能选择压缩等级。
两年前,我为兼容老网关改过一次算法。
新旧版本生成的包,在块边界上有明显差异。
匿名包使用的是新算法。
创建时间显示为前天凌晨。
那时我的代码权限已经冻结。
“能在别处拿到工具吗?”
“开源仓库没有。”
“公司内部有十二个开发账户能读。”
“其中谁能改作者名?”
“都能。”
“谁有动机?”
我看着桌上的纸。
“请先查证据。”
“我不想用猜测替代另一个猜测。”
从询问室出来,天已经黑了。
程晚等在对面的便利店。
她隔着玻璃看见我,起身走出来。
“你怎么来了?”
“许棠在群里看见有人说你被带走。”
“配合询问,不是带走。”
“有区别吗?”
“对传播的人没有。”
她把一杯热水递给我。
不是咖啡。
杯盖上没有吸管,免得我喝得太快。
这个细节是她以前养成的。
我接过时,手指碰到她。
两个人都停了一下。
她先松手。
“问了什么?”
“不能谈细节。”
“那你还能回家?”
“暂时可以。”
“手机呢?”
“留下取证了。”
我晃了晃律师借我的旧机。
“现在只能打电话。”
程晚沉默片刻。
“匿名包不是你做的。”
“为什么这么确定?”
“创建时间是前天凌晨一点十四分。”
“你那时也可能远程操作。”
“但压缩包里的泄露文件,下午四点二十七分才从媒体邮箱附件库重新下载。”
我看向她。
她眼里有一点很淡的得意。
“许棠联系到了第一个收到投稿的记者。”
“对方愿意向警方提交原始邮件。”
“匿名人先上传的是网盘链接。”
“链接里的文件下午被替换过。”
“你上午十一点就交了全部设备,权限前一晚也冻结了。”
她顿了顿。
“除非你会隔空作案。”
“还不能完全排除定时任务。”
我说。
她气笑了。
“周叙白,我替你说话,你非得替怀疑你的人补漏洞?”
“我不想因为你信我,就跳过该查的部分。”
程晚脸上的笑慢慢收住。
她低头搓了下纸杯边缘。
“这句话,你以前不会说。”
“以前我会怎样?”
“拿到对自己有利的一点,就逼我承认你全是对的。”
风从街口灌过来。
她将风衣拢紧。
我想把外套脱给她,又想起她最讨厌我不问就安排。
“冷吗?”
我问。
她愣了一下。
“有一点。”
“要外套吗?”
她看着我,忽然把手伸出来。
“要。”
我脱下外套递给她。
没有替她披,也没有趁机靠近。
她自己穿上。
袖子长了一截,把指尖遮住。
从前她穿我的衣服,我会觉得她属于我。
此刻我只觉得,她愿意开口要一件东西,已经难得。
我们沿着街边走了一段。
她说:“明砺准备重启内部项目组。”
“你会回去?”
“罗总希望我做版本审计。”
“严峰反对。”
“因为你还在嫌疑名单里。”
“也因为我没给他留面子。”
她踢开一颗小石子。
“你被停职,我被停权。”
“我们俩现在倒挺般配。”
这句话带着一点久违的玩笑。
我心口发热,却不敢接成暧昧。
“般配的是处境,不是关系。”
“我知道。”
她把脸转向另一边。
走到停车场,她脱下外套还我。
“声明的事结束了。”
“以后别在工作微信给我发无关消息。”
“好。”
她拉开车门,又回过头。
“不过这个号码可以存。”
“只限调查。”
“明白。”
“还有。”
她看着我手里的空纸杯。
“今晚别一个人喝酒。”
我差点说你怎么知道我想喝。
话到嘴边,变成了:“好。”
她开车离开。
我站在原地,第一次没有记她往哪个方向走。
7 一百二十毫秒
市急救中心只给明砺七十二小时。
如果不能证明现有方案可在隔离条件下安全运行,项目将重新招标。
柏越已经把替代方案送到评审组。
他们主动放弃远程协作功能,强调全链路封闭。
安全,却也意味着救护车上的设备数据无法提前传回医院。
病人进急诊门时,医生才知道此前发生过什么。
程晚回到项目组的第一件事,是申请保留联网能力。
严峰当场反对。
“现在最敏感的就是网络。”
“再出一次问题,谁负责?”
程晚把演示流程放到桌上。
“泄密和医疗链路不是同一个风险。”
“不能因为门锁坏了,就把救护车的窗也焊死。”
“柏越能断网运行。”
“我们的设备也能。”
“但断网不是目标。”
她调出城市隧道分布图。
急救中心覆盖区域内,有十二处信号盲区。
救护车进隧道时,设备先在车端持续记录。
离开盲区后,再补传波形与用药数据。
一百二十毫秒不是为了让报表好看。
它决定急诊医生能不能在车辆到达前,看到病人的连续变化。
评审负责人问:“澄野的云端已经停用,你们怎么演示?”
“搭建一次性隔离环境。”
“安全网关只启用本地签名和单向上报。”
“所有密钥由中心现场生成。”
“澄野任何人都拿不到。”
严峰说:“三天做不完。”
“做不完就出局。”
程晚看着他。
“但不是因为做不到。”
“是因为我们连试都不敢。”
罗岚支持她。
明砺临时抽调工程师,连续两晚搭环境。
澄野无人可以进场。
程晚通过正式邮件向我询问旧版网关的离线签名接口。
我写完回复,收件人只填了她。
手指停在发送键上,我又将罗岚、陶宁和第三方鉴定组全部抄送。
附件只放公开接口说明,没有私下给她任何调试密钥。
十分钟后,她回复:
已收到,谢谢周工。
称呼疏远得像我们从没一起生活七年。
我却觉得这比“老公”更让我踏实。
因为这一次,她知道自己拿到什么。
现场演示那天,我没有资格进入控制室。
我坐在急救中心对面的面馆,通过公开直播看结果。
模拟病人是一套高仿真训练模型。
救护车从郊区出发,依次经过高架、隧道和拥堵路段。
车载监护仪不断上报心电、血压和血氧。
进入隧道后,画面如预期中断。
评审席有人皱眉。
九十秒后,车辆出隧道。
系统没有立即恢复。
两分钟。
三分钟。
直播弹幕开始质疑。
严峰在现场要求终止演示。
程晚没有同意。
她跑到设备侧,检查车载网关指示灯。
本地缓存正常。
签名队列却一直积压。
工程师说一次性密钥没有获得中心端确认。
评审负责人问她还要多久。
“给我五分钟。”
她蹲在设备旁,用座机拨给控制室。
“请确认时间服务器。”
对面说时间一致。
“不是显示时间。”
“查授时源。”
片刻后,控制室回报,隔离环境沿用了演练网络的旧授时地址。
无法联网,设备时间比中心端慢了六分四十秒。
超过签名容差。
程晚要求切换本地授时。
严峰拦她。
“临场改配置不符合流程。”
“这不是产品参数。”
“是演示环境配置。”
“失败就是失败。”
程晚站起来。
她跑了两层楼,额发都湿了,声音仍很稳。
“如果真实救护车的授时源失效,网关会进入人工确认模式。”
“这本来就是处置流程。”
她看向评审负责人。
“我们现在是否按真实故障处置?”
负责人点头。
“继续。”
本地授时切换。
积压数据在十几秒内完成验签。
急诊大屏上,断开的心电曲线被完整补齐。
车辆尚未到院,系统根据连续血压下降发出失血风险提示。
模拟急诊组提前准备输血方案。
从恢复连接到提示出现,只用了不到一百二十毫秒。
直播里响起掌声。
我面前的面早就凉了。
老板过来收空碗,问我:“你认识里面的人?”
“认识。”
“你老婆?”
我看着屏幕里正在回答评委问题的程晚。
“以前是。”
“可惜了。”
老板随口感叹。
我没有像过去那样急着否认这个结局。
“是挺可惜。”
“但她做得很好。”
傍晚,明砺收到项目保留通知。
泄密调查继续,技术评审资格不撤销。
程晚给所有协作人员发了一封感谢邮件。
我也在群发名单里。
没有额外一句。
我关掉邮件,正要离开面馆,手机响了。
陌生号码。
“周叙白。”
她背景里很吵。
“你在哪儿?”
“急救中心对面。”
“你来了?”
“没进去。”
电话那头停了一下。
“为什么不告诉我?”
“你没邀请我。”
“那你就在面馆坐了一下午?”
“面还行。”
她笑出声。
很短,却是离婚以来第一次。
“撒谎。”
“你从前最嫌这家汤咸。”
我也笑了。
“人会变。”
“有些口味不会。”
她说完,像察觉气氛太软,清了下嗓子。
“接口文档帮了忙。”
“是你们自己跑通的。”
“周工,过度谦虚也是控制谈话的一种方式。”
我被她堵得没话。
“那就接受感谢。”
“程经理,很漂亮的演示。”
电话两端都静了几秒。
她低声说:“谢谢。”
这次不只是工作。
我听得出来。
也正因为听得出来,我没有趁机问她要不要一起吃饭。
8 授权
演示后的第二晚,程晚的新家被远程锁了。
她给我打电话时,我正在律师事务所。
“门锁屏幕显示管理员接管。”
“我用机械钥匙开了门,但网关一直报警。”
她语速很快。
“屋里只有我。”
我立刻站起来。
“先别碰网关。”
“关掉入户总电箱里标着智能设备的分路。”
“会影响冰箱吗?”
“不会。”
“然后拔掉光猫电源。”
电话里传来脚步声。
她照做后,报警停止。
“现在呢?”
“离开屋子。”
“为什么?”
“如果只是远程权限异常,断网就够。”
“但不能排除门锁固件被改。”
“它可能恢复通电后自动反锁。”
她吸了口气。
“我的电脑和项目资料都在里面。”
“人先出来。”
“程晚,听我一次。”
话说出口,我就后悔了。
那是我过去最常用的句式。
表面商量,实际命令。
她也沉默了。
我放缓声音。
“我的建议是先出来。”
“决定权在你。”
几秒后,她说:“我出来了。”
我松了口气。
“报警了吗?”
“物业和警方都联系了。”
“取证机构的人也在路上。”
“你来吗?”
我没有立刻答应。
“你希望我去?”
“我需要你认设备。”
“好。”
我赶到时,楼道里站着民警、物业和两名鉴定人员。
程晚披着一条薄毯。
看见我,她先递来一份手写授权。
允许我在第三方监督下,对她家的门锁和网关提供技术说明。
时间、设备范围、允许操作,写得一清二楚。
我接过纸。
“你准备得挺快。”
“跟你学的。”
她顿了顿。
“学的是留证,不是监控。”
“明白。”
设备恢复单独供电后,我只口述,由鉴定人员操作。
门锁本身没有被改写。
异常接管指令来自已经撤销的旧云凭证。
系统理应拒绝,却因为一段兼容代码,将旧凭证识别成灾备管理员。
那段兼容代码是三年前加的。
审批人是我。
程晚站在我旁边,看到记录时没说话。
我解释:“当时有一批养老社区设备频繁掉线。”
“为了让工程师能在本地证书失效时远程开门,我保留了旧凭证回退。”
“风险评估里写了吗?”
“写了。”
“写的是临时措施。”
“对。”
“为什么三年还在?”
我无话可说。
那两年公司扩张太快。
临时补丁堆成正式系统。
每个人都说等融资后重构。
客户没出事,风险就像不存在。
直到有人专门去找它。
鉴定人员调出请求时间。
晚上八点零三分。
同一时刻,匿名投稿网盘再次更换文件。
这次上传了我和程晚离婚调解时的一页笔录。
上面写着她曾指控我“过度掌握行程”。
对方不仅想栽赃泄密。
还在制造一个故事。
一个控制狂为了复婚,盗取前妻账号,伪造证据,再骚扰她的新住所。
程晚看完笔录,脸色很冷。
“这份材料只有我、你和双方律师有。”
“离婚时我把扫描件存过家庭网关。”
我说。
她猛地转向我。
“你为什么把它存在那里?”
“当时家里所有文件都自动备份。”
“包括离婚材料?”
“包括。”
她扯下肩上的毯子,塞到许棠怀里。
“所以就算你把我从消息镜像里删掉,你还是留着我所有东西。”
“我不知道云端还留有副本。”
“你总是不知道。”
她眼圈泛红。
“你不知道镜像会泄令牌。”
“不知道临时权限三年没关。”
“不知道我的离婚笔录会被人翻出来。”
“可每一次不知道,承担后果的都是我。”
楼道很窄。
所有人都假装在看设备。
我想解释自动备份不是针对她。
可那只会再次强调我的意图,而不是她受的伤。
“你说得对。”
“这些系统是我设计、批准和放任存在的。”
“我会负责清理所有副本。”
她笑得发苦。
“又清理?”
“你昨天删,今天还有。”
“我怎么知道哪天才是真的没有?”
我胸口像被钝器压着。
“你不用再相信我的口头承诺。”
我把授权纸交还给她。
“让第三方列出所有存储位置。”
“由你决定删除、封存还是保留取证。”
“我退出操作。”
“周叙白。”
她声音忽然提高。
“我不是来听你把权力交给我的。”
“那些权力本来就是我的!”
我看着她,喉咙发疼。
“是。”
“本来就是你的。”
她的眼泪终于落下来。
她迅速擦掉,转身走到楼梯窗边。
许棠想跟过去。
我先退到了楼下。
半小时后,鉴定人员叫我补充说明。
程晚没有回来。
我把兼容代码的来龙去脉说完,留下签字记录。
临走前,她从车边走过来。
眼睛还有些红。
“刚才我不是要赶你。”
“我知道。”
“我是气我自己。”
“为什么?”
“因为门锁响的时候,我第一个想到的人还是你。”
她抬头看我。
“这很不公平。”
“你让我害怕。”
“又偏偏是最知道怎么解决的人。”
“你可以用我的专业。”
我说。
“不必连我这个人一起接受。”
她咬住唇。
“你能不能别每次都突然变得这么通情达理?”
“我不知道该怎么接。”
“可以不接。”
“也可以骂我。”
“你以前不让我把话停在这里。”
“现在呢?”
我看了一眼她身后的楼道。
“现在你想停就停。”
程晚没有说话。
过了很久,她伸出手。
“授权纸。”
我递给她。
她却没有接,反而握住了我的手腕。
只握了一下。
很轻。
“今晚谢谢。”
她松开手。
“到家给我打个电话。”
我心里猛地一跳。
她立刻补充:“你的手机在警方那儿,这台旧机也可能被盯上。”
“安全需要。”
“好。”
我没有拆穿。
如果她需要一个安全的理由,才能允许自己关心我。
我愿意等她慢慢把理由换掉。
9 第二把钥匙
旧凭证的使用方式,最终把调查带回澄野。
S-ROOT必须由物理密钥签名。
我的密钥封存在保险柜里,日志显示从未离开。
另一把密钥,两年前被登记销毁。
销毁记录有照片,有视频,还有三个人的签名。
第三方把视频逐帧放大时,发现被剪断的只是密钥外壳。
真正存放证书的安全芯片,没有出现在画面里。
当年的运维主管章启已经离职。
警方找到他时,他交出一封邮件。
贺呈要求他在销毁前做一把“灾备副本”,理由是公司正在迁云,不能失去最高权限。
章启拒绝后,贺呈亲自拿走密钥。
三个月后,章启因绩效问题被辞退。
调查组通知我结果时,程晚也在场。
她看向我。
“你早就怀疑他。”
“怀疑不是证据。”
“所以你一直没问?”
“问过账户。”
我说。
“没问密钥。”
我和贺呈认识十一年。
创业以前,我们在同一家安全公司做渗透测试。
我负责找漏洞,他负责让客户愿意承认漏洞。
他比我更懂人,也比我更懂恐惧值多少钱。
公司最困难时,有客户拖欠两百万。
贺呈在人家办公室坐了三天,回来时只说一句“钱到账了”。
我没问他怎么拿到的。
过去很多年,我享受他的手段带来的结果,又把手段本身留在视线之外。
这不是无知。
是默许。
警方要求所有人暂时保密,继续追查密钥与异常登录的关系。
我签完笔录,程晚没有马上走。
“你难受吗?”
“还好。”
“你每次说还好,就是不好。”
她从自动售货机买了两罐热豆奶。
递给我时,她先问:“喝吗?”
我点头。
拉环弹开,一股甜味冒出来。
这是我们刚结婚时常喝的牌子。
后来我嫌糖多,家里再没买过。
“如果是贺呈,你会怎么办?”
她问。
“交给调查。”
“公司呢?”
“董事会会处理。”
“我是问你。”
我握着温热的罐子。
“我不知道。”
“我想过冲进他办公室问清楚。”
“也想过,是不是还有别的解释。”
“他替我扛过很多事。”
程晚靠在墙边。
“一个人帮过你,不代表他以后伤害别人时,你必须还他沉默。”
“我知道。”
“知道和做得到不一样。”
她看着我。
“我也一样。”
“我知道你在改。”
“可只要门锁响一次,我还是会想起那些消息。”
我点头。
“你不用因为看见我的代价,就加快原谅。”
她低头喝了一口豆奶。
“你现在最讨厌的地方,是总能把我想说的话先说了。”
“职业病。”
“什么职业?”
“前夫。”
她没忍住笑了。
“哪有这种职业?”
“无薪,高风险,还容易被辞退。”
她笑意停在眼角。
“你不是被辞退。”
“是合同到期,我没续。”
这句话说得很轻。
我却听懂了。
她不是否定过去。
只是告诉我,那段关系不是被谁粗暴撕毁。
它走到了她无法再续签的位置。
至于以后会不会有新的合同,没有人能提前偷看答案。
10 交换条件
董事会准备把澄野的测试设备业务出售给柏越。
消息没有公开。
贺呈先约我见面。
地点是我们创业时租过的那套房。
楼下烧烤摊还在,楼道墙皮掉得更厉害。
屋里早已改成仓库,摆满淘汰的路由器。
贺呈坐在当年那张折叠桌旁。
桌上放着两份文件。
一份是股权委托协议。
一份是个人责任声明。
“把表决权给我。”
他说。
“承认S-ROOT是你保留的灾备手段。”
“柏越今天就打第一笔款。”
“员工工资、客户赔偿、调查费用,全有着落。”
“那把密钥在你手里?”
我问。
“重要吗?”
“重要。”
他往椅背上一靠。
“叙白,公司真倒了,谁都不会因为你诚实给你发奖章。”
“你写镜像是为了程晚。”
“我留密钥是为了澄野。”
“我们没有本质区别。”
“有。”
“她没有授权我。”
我看着他。
“公司也没有授权你。”
他嗤笑。
“少拿董事会那群只会算回报率的人压我。”
“当年没有我,澄野活不过第一个冬天。”
“所以你用S-ROOT导出诊断包?”
“我只拿了能救公司的东西。”
“程晚的企业令牌?”
他没回答。
我放在口袋里的手慢慢攥紧。
见面前,警方让我不要诱导,不要质问泄密细节。
我本来也没打算套话。
我想听他自己怎么解释我们十一年的交情。
“严峰给了你什么?”
我问。
贺呈眼神一变。
很快又笑了。
“你开始会诈人了。”
“柏越愿意收购澄野,是不是因为严峰答应让明砺出局?”
“你的想象力比写代码强。”
他拉开抽屉,取出一个黑色硬盘。
“这里面,是程晚一年九个月的消息缓存。”
“你本地删了。”
“云端可没那么容易干净。”
我盯着硬盘。
“你想干什么?”
“你签字,我当着你的面销毁。”
“你不签,明天所有人都会知道。”
“她申请广州,吃抗焦虑药,和律师谈离婚,还跟许棠说过她最后悔嫁给你。”
他每念一句,我身体里就像有一根钢丝收紧。
那些内容我看过一部分。
更多的,我强迫自己没有点开。
可我造出的门,让另一个人走了进去。
“你觉得把她的隐私放出去,能救澄野?”
“不能。”
“但能让你签字。”
贺呈将笔推到桌边。
“你最舍不得的从来不是公司。”
“是她怎么看你。”
“消息一公开,她会知道你连删除都没删干净。”
“她不会再回头。”
我拿起笔。
贺呈嘴角露出一点笑。
“这就对了。”
我没有签。
“我要一天。”
“一个小时。”
“这种责任声明,我至少要让律师看。”
“你没资格讨价还价。”
“那你现在就发。”
我把笔放下。
“发完,硬盘也失去价值。”
贺呈脸色沉下来。
“晚上十点以前。”
“超过时间,定时任务会自动执行。”
我带走两份文件的复印件。
下楼后,手一直在抖。
我没有回家。
第一通电话打给警方。
第二通打给程晚。
她正在公司开会。
我说有紧急情况,涉及她的个人数据,请她在律师陪同下谈。
半小时后,我们在派出所旁的调解室见面。
我把贺呈的话原样复述。
没有省掉广州、药物和离婚。
程晚坐得很直。
脸色一点点褪去。
律师问她是否需要休息。
她摇头。
“他要什么?”
“我的表决权和责任声明。”
“你准备签吗?”
“我不能替你决定。”
她忽然站起来。
椅子撞在墙上。
“所以你来问我,要不要用隐私换你的公司?”
“不是。”
“那是什么?”
“是告诉你风险。”
我也站起来,又在她后退前停住。
“决定怎么应对的人是你。”
“我会承担我的责任。”
“但这次,不拿你的生活做筹码。”
她胸口起伏。
“如果我说签呢?”
“我会把意见交给警方。”
“不会私下签。”
“为什么?”
“因为签了不保证他真删。”
“也会让调查中断。”
“那你还问我?”
“因为东西属于你。”
我声音发涩。
“即使警方有方案,我也不该瞒着你。”
程晚闭上眼。
过了很久,她重新坐下。
“我不签。”
“也不让你签。”
她用发抖的手,把两份文件推回我面前。
纸角歪了,我第一次没有替她按平。
她脸色仍白,一字一句却说得清楚。
“我的尊严,不是必须靠所有秘密永远不见光才能成立。”
“如果消息泄露,我会追究。”
“会难受,会丢脸,也可能被人议论。”
“但我不接受他拿我的恐惧买走证据。”
我看着她。
直到这一刻,我才发现,我总想保护她不受伤。
她要的却不是一个没有伤害的世界。
她要的是受伤时,仍能自己选择站在哪里。
11 定时任务
警方制定了控制方案。
我按约定回复贺呈,同意签字,但要求先验证硬盘内容和定时任务。
见面仍在旧仓库。
这次程晚不在现场。
她在隔壁楼的指挥车里,和律师一起确认每个步骤。
我进去前收到她的消息:
不要逞强。
我回:
好。
她又发:
这不是命令,是请求。
我盯着那句话,嘴角动了一下。
仓库里,贺呈已经打开电脑。
屏幕上是一个云存储控制台。
定时任务显示,二十二点会向十二个媒体邮箱发送链接。
我说:“停掉。”
“先签。”
“我要确认硬盘。”
“你以前可没这么谨慎。”
“以前我以为你不会害我。”
贺呈手指停在键盘上。
“我没有害你。”
“我给过你选择。”
“牺牲程晚,换公司活。”
“这算什么选择?”
“你牺牲过她。”
他盯着我。
“你看她消息,干涉她工作,把她当成你的私有设备。”
“现在装什么情圣?”
我没有否认。
“我做错,不代表你可以继续。”
“你只是不习惯,控制权到了别人手里。”
这句话刺得很准。
我把责任声明翻到签字页。
“停掉发送。”
“给我硬盘。”
“我签。”
贺呈输入密码。
进度条显示“取消任务”。
就在他准备拔下硬盘时,窗外突然传来警笛。
不是计划中的声音。
街口出了交通事故。
贺呈却像受惊的动物,猛地合上电脑。
“你报警了?”
他抓起硬盘冲向后门。
我没有追。
门外已有便衣。
贺呈撞开一人,又把硬盘摔向墙角。
黑色外壳裂开。
芯片滚到货架下面。
他被按在地上时,死死盯着我。
“周叙白,你会后悔。”
“公司没了。”
“程晚的消息也已经发出去了。”
控制台上的取消按钮是假的。
真正的发送任务藏在另一台服务器。
晚上十点,十二封邮件准时发出。
警方提前通知的九家媒体没有打开链接。
另外三家中,有一家自媒体下载了文件。
它没有立刻发布。
负责人给程晚打电话,开价五十万。
不给钱,就连夜做成系列爆料。
程晚打开免提。
对方念出她与心理医生的一句对话,证明手里确有内容。
我站在两米外,手掌全是冷汗。
她听完,问:“你知道这些数据怎么来的吗?”
“有人投稿,我是媒体。”
“未经同意传播私密信息,可能涉及侵权和犯罪。”
“你可以告。”
对方笑得有恃无恐。
“但明早,全城都会知道你是怎么骂前夫的。”
“我没有五十万。”
“周叙白有。”
程晚抬眼看我。
我没有说给。
也没有摇头。
她对电话那头说:“他的钱不是我的。”
“我也不会为被盗的东西付赎金。”
“你发一条,我追究一条。”
“另外,警方正在对数据勒索立案。”
对方沉默了。
“你吓谁?”
门外民警抬手示意,追踪已经完成。
程晚说:“不是吓你。”
“是在通知你。”
电话挂断。
她放下手机以后,背脊仍挺着。
下一秒,她弯下腰,双手捂住脸。
我走了一步,又停下。
“我能抱你吗?”
她没有回答。
肩膀轻轻发抖。
我等着。
十几秒后,她朝我伸出一只手。
我走过去,抱住她。
她额头抵在我肩上,没有哭出声。
我也没有说不会有事。
事情已经发生了。
任何安慰都不能把它撤回。
“对不起。”
我低声说。
“这次不是用来跳过去。”
“我知道。”
她抓住我背后的衣料。
“让我靠一会儿。”
“好。”
那是离婚六个月后,我们第一次拥抱。
没有原谅。
没有复合。
只有两个终于肯一起承认伤口的人,站在一地无法彻底删除的数据里。
12 没有消失的伤
贺呈被刑事拘留后,严峰请了病假。
明砺当天封存他的电脑。
设备里没有发现泄露文件。
他删得很干净。
可贺呈的手机里,有一个备注为“风向”的加密联系人。
两人从半年前开始交换消息。
严峰把明砺的成本压力、项目人员名单和版本流转规则告诉贺呈。
贺呈则承诺,让柏越拿到足以改变报价的信息。
柏越胜出后,会收购澄野的设备业务。
严峰通过亲属公司收咨询费。
贺呈保住现金流和管理权。
程晚成了最合适的替罪人。
她反对一百八十毫秒的低配方案,又和我存在婚姻关系。
只要用她的令牌制造下载记录,再把带有她水印的旧稿放出去,利益链就能藏在一场离婚纠纷后面。
严峰直到被带走时仍在喊冤。
“旧稿本来就是程晚做的。”
“谁能证明不是她先泄露?”
证明来自那颗蓝点。
程晚在五份草稿上用了不同颜色和位置的标记。
严峰收到的版本没有蓝点。
贺呈从镜像消息里看见她和许棠讨论版本习惯,误以为蓝点统一代表产品组。
他伪造水印时,加错了位置。
一个原本只用来防止发错附件的小习惯,拆穿了他们精心搭的证据。
明砺恢复程晚全部权限。
总经理亲自在部门会上宣布,她与泄密无关。
掌声响起来时,她坐在原位,没有笑。
会后,公司提出补发绩效,并将她升为项目副总监。
条件是双方签署和解协议,不再公开讨论公司内部对她的停职处理。
程晚把协议退了回去。
“我接受恢复职位。”
“和解另谈。”
人事负责人提醒她:“公司也是受害者。”
“我知道。”
“所以我没有要求谁辞职。”
“但在证据不完整时,你们允许‘嫌疑人’三个字在内部通报里和我的名字放在一起。”
“现在应该用同样范围更正。”
“会上已经澄清。”
“项目组之外呢?”
她列出收到过内部通知的所有部门。
“请逐一发正式更正。”
“另外,新增数据事件中的员工申诉流程。”
人事负责人脸色不太好。
罗岚把她的方案拿过去。
“我支持。”
“今天是程晚。”
“下次可能是在座任何人。”
最终,明砺发了完整更正。
没有一句“造成误会”。
写的是“此前判断依据不足”。
程晚把邮件转给我。
只写:
名字拿回来了。
我回复:
恭喜程经理。
她回了一个句号。
过了半分钟,又发来一张照片。
她站在项目大屏前,胸牌已经恢复蓝色权限标识。
许棠在后面比了一个夸张的胜利手势。
我把照片存下。
随后又点开设置,关闭云端自动备份。
不是因为她要求。
是因为我终于知道,留下一个人的每张照片,并不等于珍惜。
征得同意,才算。
网上仍有零散的聊天截图。
有人拿她看心理医生的事开玩笑。
有人说被丈夫监控肯定是她“不让人放心”。
她没有逐条解释。
律师集中取证,平台陆续删除。
有一条传播量很小的截图,她却坚持起诉。
那是她和医生讨论失眠的内容。
许棠问她,为什么偏偏抓这一条。
她说:“因为它最普通。”
“普通人的脆弱,也不能被当成公共谈资。”
我听说以后,主动向法院提交说明。
确认数据来源与我的系统有关,愿意承担相应民事责任。
程晚没有阻止。
她也没有替我减轻。
这一次,我们都没有把感情放到规则前面。
13 失去控制
澄野没有倒闭。
但也不再属于我和贺呈。
调查结果公布后,六个客户解约。
设备召回、数据清理和赔偿准备金,把账上现金耗得见底。
董事会提出破产清算。
我提交了另一套方案。
出售非核心办公资产,停止家庭网关业务。
现有医疗安全团队进入独立托管。
创始股东让渡表决权,由外部重组人接管。
我放弃过去三年的未分红和股东借款,优先填补用户通知与设备替换费用。
投资方代表问:“你知道放弃的数额吗?”
“知道。”
“房子也抵押?”
“那是我个人补偿部分。”
“周叙白,承担责任不是把自己弄得一无所有。”
“我留了基本生活费。”
他看着我,像第一次认识我。
“你以前连出差发票少报二十块都要找财务。”
“现在不是二十块。”
“所以更该算清。”
我把预算表翻到最后。
“钱花在哪里,谁批准,谁监督,都写了。”
“不是赎罪捐款。”
“是风险处置。”
方案通过时,我的表决权正式失效。
会议系统弹出提示:
您已不具备管理员权限。
我看了几秒,点击确认。
离开公司那天,技术团队在大厅等我。
有人红着眼,有人没有表情。
一个年轻工程师问:“周总,镜像代码真是你写的吗?”
“是。”
“为什么?”
“因为我以为自己不会滥用权限。”
我看着他们。
“这也是最危险的理由。”
“以后任何功能,不要以开发者自认为善意替代用户同意。”
我没有讲创业史,也没有让他们记住我。
门禁卡交出去以后,我抱着一个纸箱走出大厅。
箱子里只有两本书、一把机械键盘和那张折叠桌的旧照片。
程晚站在台阶下。
她没有问我为什么不告诉她。
只接过纸箱。
“重吗?”
“还行。”
“你以前说还行,就是不好。”
我笑了一下。
“你记仇。”
“记性好。”
她把箱子放进后备厢。
“住处找了吗?”
“租了间公寓。”
“房子什么时候交割?”
“下个月。”
她关后备厢的动作停住。
那套房子是我们的婚房。
离婚时她主动放弃产权,换取彻底搬离。
如今为了补偿和重组,我把它卖了。
“你可以卖别的资产。”
“其他资产不够。”
“也可以分期。”
“房子里装过镜像网关。”
我说。
“就算留下,我也住不回以前了。”
程晚看向街对面。
秋天的阳光落在她睫毛上。
“你总算学会不把留着当深情。”
“刚学。”
“学费挺贵。”
“还付得起。”
她拉开驾驶座车门。
“上车。”
“去哪儿?”
“帮你搬家。”
“你今天不上班?”
“调休。”
“为什么帮我?”
她扶着车门,似笑非笑。
“周先生,接受别人的善意,不代表你有权追问全部动机。”
我坐进副驾。
她把手机放到支架上,导航地址是我的新公寓。
我心里一动。
“谁告诉你的?”
“陶宁。”
“你查我?”
“我问的。”
她斜我一眼。
“经过本人同意。”
那天下午,我们把纸箱搬进不足六十平方米的公寓。
屋里没有智能音箱,没有联网摄像头。
门锁是最普通的机械锁。
程晚转了一圈。
“你这是矫枉过正。”
“机械的至少不会上传离婚笔录。”
“燃气报警器还是要装。”
“本地版。”
“可以联网。”
她拿起桌上的产品说明书。
“权限给我看清楚。”
我看着她。
“你是在替我挑?”
“怕你把自己熏死。”
“安全需要?”
她唇角动了动。
“暂时算。”
14 删除和保留
第三方的数据清理持续了一个月。
澄野测试云、家庭网关、故障工单、灾备存储,一共发现十一处与程晚有关的数据副本。
消息正文全部删除。
涉及案件的哈希值和访问日志依法封存。
照片、家庭文档和共同账单则由她逐项决定。
最后一次处理,在卖房交割前。
我和程晚回到旧家。
鉴定人员坐在书房,投影上列着待处置目录。
“婚礼照片,保留还是删除?”
程晚问:“你想留吗?”
我没有立刻回答。
“想。”
“为什么?”
“不是为了证明我们还属于彼此。”
“只是那七年真实发生过。”
“我不想因为结局不好,就说所有时候都不好。”
她安静片刻。
“各留一份。”
“由我们自己保管。”
鉴定人员勾选“分发后清除云端”。
下一项是旅行视频。
我们在海边学冲浪,她被浪拍倒,趴在沙滩上笑了很久。
画面里的我伸手去拉她。
她没有立刻起身,反而把我一起拽进水里。
程晚看着屏幕,眼眶有些红。
“这个也留。”
“好。”
再往下,是消息镜像缓存的残余索引。
没有正文。
只有一串又一串时间。
每个时间点,都代表我曾经在她不知情时看向她。
程晚说:“删掉。”
我点头。
鉴定人员执行清除。
进度走到百分之百,生成多方签名回执。
程晚接过纸,看了很久。
“结束了吗?”
“技术上,这些存储位置结束了。”
鉴定人员说。
“不能保证互联网上不存在被人下载的副本。”
她点头。
“我明白。”
人走后,空房里只剩我们。
墙上的婚纱照早已取下,留下一个颜色更浅的方框。
我把最后一只箱子封好。
程晚站在客厅中央。
“你还想复婚吗?”
胶带在我手里绷紧。
“想。”
“为什么最近不提?”
“因为想,不代表现在该提。”
“你怕我拒绝?”
“怕。”
我坦白。
“也怕你答应得太早。”
她皱眉。
“什么意思?”
“你看见我失去公司和房子,可能会心软。”
“我不想把代价变成向你收费的账单。”
她走近两步。
“那你准备等多久?”
“不知道。”
“等你想清楚。”
“如果我一直不说呢?”
我看着她。
“那我就接受。”
“你以前可不会。”
“以前我会拿纪念日、你妈妈、共同朋友,所有能用的东西逼你回答。”
“现在呢?”
“现在我只能问一次。”
我放下胶带。
“程晚,我想和你重新开始。”
“不是恢复原来的婚姻。”
“原来的已经被我弄坏了。”
“如果你不愿意,我不会把等待说成牺牲。”
“也不会从任何地方偷看答案。”
她眼睛一点点红了。
却故意问:“一次机会都不给你追?”
“可以追?”
“我只说不给你复婚。”
她吸了吸鼻子。
“没说不能重新约会。”
我胸口像被骤然打开一扇窗。
“有什么条件?”
“第一,不交换手机密码。”
“第二,位置共享只在双方需要时开启,自动到期。”
“第三,不替对方回答,不借家人施压。”
“第四,接受婚姻咨询。”
她顿了顿。
“第五,如果我说停,你就停。”
“好。”
“别答这么快。”
“我可以回去逐条看。”
“这不是用户协议。”
“我怕漏掉。”
她终于笑起来。
“还有一条。”
“什么?”
“今晚请我吃饭。”
“地点我选。”
“你可以建议。”
“但别替我点菜。”
我拿起外套。
“程经理,请。”
走到门口,她回头看了一眼空掉的客厅。
我没有催。
也没有猜她在想什么。
片刻后,她主动牵住我的手。
“走吧。”
这一次,没有系统提示我她要离开。
也没有任何数据告诉我,她为什么留下。
我只能感受她掌心的温度。
这已经足够。
15 证词
半年后,案件开庭。
贺呈和严峰坐在被告席上。
检方展示了完整的访问链。
灾备密钥导出诊断包。
程晚的企业令牌被复制。
严峰提供旧稿和内部流转规则。
贺呈伪造下载痕迹与文件属性,再把材料交给柏越的中间人。
柏越以为拿到的是竞争情报。
直到事情失控,才发现自己也被当成收购澄野的工具。
严峰认罪。
贺呈仍坚持,他最初只是想救公司。
轮到我作证时,他隔着法庭看我。
“周叙白。”
法官制止他直接发问。
他却笑了一下。
“你做的,和我有什么不同?”
这也是过去半年里,很多人问过我的问题。
我未经同意监控妻子。
他未经授权窃取企业与个人数据。
我们都曾把一个自认为重要的目标,放在别人的权利前面。
“起点没有你想的那么不同。”
我说。
“所以我更清楚,那不是理由。”
贺呈脸上的笑消失了。
“你牺牲我,换她回头。”
“她没有因为我作证才回头。”
“公司也不是你的私产。”
我握住证人席的栏杆。
“贺呈,你救过澄野。”
“你陪我熬过最穷的时候。”
“这些都是真的。”
“你偷走别人的选择,也是真的。”
“前一件事不能抵消后一件。”
“就像我爱过程晚,不能抵消我监控她。”
他盯着我,眼里第一次有了狼狈。
“那你凭什么站在那里教训我?”
“我没有教训你。”
“我在作证。”
法庭最终对数据窃取、商业泄密和勒索等行为分别作出认定。
严峰与贺呈承担刑事责任。
柏越相关人员另案处理,市急救中心取消其本轮资格。
明砺没有因此自动中标。
他们重新完成技术与合规评审,才拿到合同。
第一批急救设备投入运行那天,程晚带着团队守了整夜。
凌晨三点,一辆救护车穿过隧道。
车内监护数据短暂中断,出隧道后完整补传。
医院提前启动手术准备。
病人到院后被直接推进手术室。
清晨,急救中心发来一句:
链路有效。
程晚把截图发给我。
我回:
你坚持的一百二十毫秒,值了。
她说:
是大家一起做的。
我没有纠正她。
她已经学会接受自己的功劳,也愿意分给真正参与的人。
我这边的处理也有结果。
澄野因数据管理漏洞被处罚,完成用户赔偿与设备召回。
我对程晚承担单独的民事赔偿,并接受行业协会的纪律处理。
三年内,不得担任涉及个人数据直接管理的企业负责人。
有人说这个结果毁了我的职业。
我倒不觉得。
我加入一家小型安全实验室,专门做权限到期与可验证删除。
没有超级管理员账户。
所有测试数据由独立受托人管理。
我写的第一段代码,是让用户随时看见谁在访问、为什么访问,以及什么时候自动失效。
发布前,我把设计说明发给程晚。
她回复:
可以少一个弹窗,别让用户为了拒绝监控先过十道题。
我照改。
实验室负责人问我,为什么一个医疗产品经理比我们更懂用户。
我说,因为她交过最贵的学费。
后来,这套开源组件进入新版家庭网关。
它没有叫“守门人”。
程晚给它起名“界线”。
我问是不是在骂我。
她说:“是提醒你。”
“界线不是把人隔开。”
“是让人知道,走近以前要先敲门。”
16 加回生活
重新约会满一年那天,我和程晚去做第十二次婚姻咨询。
咨询师问,我们现在最常吵什么。
程晚说:“他每次想帮忙,都先问我可不可以。”
“有什么问题?”
“有时候我两只手都拎着东西。”
“他还站在旁边问,需不需要替我开门。”
咨询师笑了。
我也笑。
“我怕擅自做主。”
“开门不算。”
程晚看我一眼。
“替我决定去哪儿才算。”
我们仍会吵。
她项目忙起来,三天只回两句消息。
我会不安。
以前我会自己寻找答案。
现在我会告诉她:“我有点慌,但不是催你。”
她有空时会回复。
没空,就到晚上再说。
答案来得比偷看慢。
却是真的给我的。
我母亲也向程晚道了歉。
不是劝她回来。
只是承认那句“他也是担心你”替我卸掉了责任。
程晚没有马上叫妈。
她说:“阿姨,我接受道歉。”
三个月后的一顿饭上,她自然地改了口。
母亲红了眼,只给她夹了一次菜。
第二次夹之前,先问她还要不要。
许棠知道我们重新约会,警告我:“再装程序,我亲手把你装进纸箱寄走。”
我说:“地址谁填?”
她瞪我。
程晚在旁边笑得差点呛到。
那些曾经站在我们裂缝旁边的人,没有因为我们靠近就立刻放心。
我也不要求他们放心。
信任不是宣布恢复。
是一次次没有越界之后,别人终于不必再时刻防备。
咨询结束后,程晚带我去市民中心。
我以为要办项目手续。
直到她在婚姻登记窗口前停下。
我站在原地,半天没动。
她回头。
“周叙白。”
“嗯。”
“你还想复婚吗?”
“想。”
“这次想清楚了?”
“没有全部想清楚。”
我走到她面前。
“但我知道有些事不能再做。”
“我不会用担心要求你的密码。”
“不会用爱证明我有权知道。”
“不会把付出当成你必须留下的理由。”
“如果我又犯错——”
“停。”
她抬手按住我的嘴唇。
“别在登记处念风险告知书。”
我抓住她的手,又马上松了力道。
她没有抽回去。
“那你愿意吗?”
她从包里拿出户口簿。
“材料都带了。”
“你觉得呢?”
“我不猜。”
她眼睛弯起来。
“我愿意。”
办完手续,我们回到她的公寓。
门口放着一只新网关。
是装了“界线”的正式版本。
我拆开包装,准备叫安装人员。
程晚把螺丝刀递给我。
“自己装。”
“你确定?”
“确定。”
“设备所有人是谁?”
“我。”
“管理员呢?”
“也是我。”
“那我是什么?”
她蹲在旁边,打开家庭成员页面。
系统提示:
是否邀请新成员?
权限可随时查看、修改或撤销。
程晚没有替我选择。
她把手机递过来。
“自己申请。”
我勾选灯光、燃气报警和访客门铃。
没有选位置。
没有选消息通知。
申请发出去。
她逐项看完,点了同意。
“就这些?”
“就这些。”
“以后不加了?”
“需要时再问。”
她放下手机,靠在柜门上。
“周叙白。”
“嗯?”
“我有一条新消息。”
我手里的螺丝刀停了一下。
她观察着我的表情。
“你不想知道?”
“想。”
我继续拧螺丝。
“但我等你告诉我。”
程晚走到我面前。
“是许棠。”
“她问我们今晚是不是庆祝复婚。”
“你怎么回?”
“我说不庆祝。”
我的心提起来。
她从身后拿出两张去海边的车票。
“庆祝重新结婚。”
我看着她,鼻子忽然发酸。
她伸手抱住我。
“你已经把我从监控里删掉了。”
“现在,我愿意把你加回我的生活。”
我收紧手臂。
这一次,我没有后台。
没有预览。
没有办法提前知道她下一句话。
窗外的天一点点暗下来。
新网关亮起柔和的绿灯。
页面上,我们是两个独立账户。
也是彼此唯一确认过的家人。