电网密听
电网密听
一
陈默是从北京被”优化”的。
说”优化”已经算是客气了。二〇二五年十一月的一个周四下午,他在会议室里被告知,整个推荐算法组裁撤,N+1赔偿,周五之前交工牌。HR说话的时候,窗外正好有一架飞机掠过,影子从会议桌上一划而过,像一只沉默的手掌按住了所有人的嘴唇。
他的直属领导老周坐在对面,自始至终没抬过头。
陈默在三环边租了六年的房子,退租那天搬家公司的师傅问他去哪儿,他说回老家。师傅说那挺好,不用堵车了。他笑了笑,没说话。
他是湖南岳阳人,一个叫汨罗的小城。不是汨罗市,是汨罗下面一个叫川山坪的小镇。他在那儿长到十八岁,考上北京的大学,学了计算机,然后就在北京扎了下来。十二年。他在北京的时间比在川山坪还长。
但现在他回来了。
他母亲在镇上开了一间小超市,门面不大,卖些日用品和零食。陈默到家那天,母亲正在门口晒被子,看见他拖着一个行李箱出现在巷口,愣了几秒,然后笑了笑,说:“回来了?”
“回来了。”
“饿不饿?我给你下面。”
“好。”
就这样。没有什么煽情的拥抱,也没有电视里演的那种痛哭流涕。母亲煮了一碗面,加了一个荷包蛋,放了很多辣椒。陈默坐在厨房的小桌子前吃完,额头沁出了汗。
他忽然觉得这碗面比北京任何一家馆子都好吃,又觉得自己产生这个念头挺可悲的。
回家的第一个星期,他每天都在睡觉。睡到自然醒,吃了午饭继续睡,睡到傍晚起来吃晚饭,看完一集不知道什么电视剧又睡了。他母亲没说什么,只是每天变着花样做菜。
第二个星期,他开始出门走走。川山坪变了一些,又好像什么都没变。镇上最大的变化是十字路口那块空地上建了一个崭新的充电站,四根充电桩立在水泥地上,像四个沉默的哨兵。旁边立着一块蓝色的牌子:川山坪智慧电网示范点。
他对”智慧电网”这四个字没什么好感。在大厂的时候,他见过太多东西被加上”智慧”两个字:智慧城市、智慧社区、智慧零售、智慧厕所。加了这个前缀,预算就可以多加一个零。
但他没有太在意。他现在是一个失业的、三十三岁的、住在小镇上的前算法工程师。充电站也好,智慧电网也好,跟他没什么关系。
直到他遇见了刘琴。
二
刘琴是他初中同学,当年坐在他后排,扎一个马尾辫,数学永远比他高两分。后来她读了长沙的师范,毕业后回到川山坪的镇中学教书,教的就是数学。
他们是在超市里碰上的。刘琴来买粉笔——她说是学校的粉笔总不够用,只好自己来买。陈默站在收银台后面帮他母亲看店,看见她走进来,愣了一下。
“陈默?“刘琴也愣了一下,然后笑了,“你回来了?”
“嗯,回来住一段时间。”
“在北京混不下去了?”
她说话还是跟初中一样直。陈默觉得这反而是好事,至少不用客套。
“公司裁员。”
“哦。“刘琴点了点头,拿起一盒粉笔看了看包装,“那你现在做什么?”
“什么都做。帮我妈看店,睡觉。”
“有考虑过留下来吗?镇中学缺信息技术老师,你可以来代课。”
“代课?“陈默想了想,“一个月多少钱?”
“两千三。”
陈默没说话。他在北京的月薪是三万五。但他也知道,这个比较没有意义。
“我考虑考虑。“他说。
刘琴走的时候在门口停了一下,回头看了他一眼:“镇上最近在搞智慧电网改造,你知道吗?”
“看见了,十字路口那个充电站。”
“不是充电站的事。“刘琴压低了声音,但超市里只有他们两个人,压低声音反而显得有些刻意,“是电表。他们给每家每户换了新的智能电表,说是可以远程抄表、自动计费。但我总觉得不对。”
“哪里不对?”
“我也说不上来。“刘琴皱了皱眉,“就是……你有没有觉得,自从换了电表以后,有时候家里明明没有人开灯,电费反而变高了?”
陈默想了想:“可能是电表灵敏度高了,待机耗电也能检测到了。”
“可能吧。“刘琴没有再说什么,拿着粉笔走了。
陈默看着她的背影消失在巷口,忽然觉得她刚才那番话不像是随口说的。
三
他开始注意那个电表。
说实话,要不是刘琴提起,他根本不会去看。那是一个白色的小方盒子,装在每户门口的墙面上,比老式电表小了一半,正面有一块液晶屏,上面跳动着数字。牌子他不认识,叫”霆耀科技”。
他母亲对新的电表没什么意见。“比以前方便,不用抄表员上门了。“她说。
但陈默是一个工程师。或者说,他曾经是一个工程师。他习惯性地去看系统、看数据、看逻辑。于是在一个失眠的夜晚,他蹲在门口,用手电筒照着那个电表的型号,用手机搜了一下。
搜索结果很少。霆耀科技,注册地深圳,注册资本五千万,法人代表叫蒋鸣。公司官网设计得很漂亮,首页写着”让每一度电都有智慧”,下面是一堆合作案例:与某省电力公司达成战略合作,与某市共建智慧电网示范区,与某大学成立联合实验室。
看起来很正规。但陈默在大厂待了十二年,他太知道这种公司官网意味着什么了——它们就像相亲时的美颜照片,拍得越好看,本人可能越不好看。
他又搜了一下”霆耀科技 融资”,发现这家公司在去年拿了B轮融资,领投方是一家叫”深蓝资本”的投资机构。深蓝资本他听说过,在北京的创投圈里小有名气,主投硬科技和企业服务。
再往下搜,他看到了一条不起眼的新闻,发在某个地方资讯网站上,标题是:川山坪全域智慧电网改造完成,惠及3000余户居民。时间是两个月前。
他仔细读了那篇报道。报道里说,这次改造是由霆耀科技和岳阳市电力公司联合推进的,总投资一千二百万,覆盖川山坪镇三千多户居民和商户。改造内容包括智能电表、智能变压器、配电自动化系统和”居民用电行为分析平台”。
“居民用电行为分析平台”。
陈默盯着这几个字看了很久。作为一个做推荐算法的人,他太知道”行为分析”意味着什么了。在北京的时候,他每天做的事情就是分析用户的行为——他们点击了什么,停留了多久,滑过了什么,搜索了什么。这些数据被喂进模型,模型再输出推荐结果,让用户看更多的内容,花更多的时间,产生更多的数据。
电表能收集什么数据?用电量、用电时间、电压波动、电流波形……这些数据看似无害,但如果采样频率足够高,能分析出的东西远不止”你用了多少度电”。
他想起一个经典的例子:通过分析电网的高频数据,可以推断出某户人家正在使用的电器类型。空调、冰箱、电视、电脑、热水器——每一种电器的启动电流和运行功率都有独特的”签名”。就像一个人的步态可以被识别一样,一个家庭的”用电步态”也可以被识别。
但这也还算正常。真正让他不安的是,如果采样频率再高一点呢?
他摇了摇头,觉得自己想多了。他现在是一个小镇居民,不是在北京做算法的工程师。一个电表就是一个电表。
但那天晚上,他还是失眠了。
四
失眠的时候,他做了一件事。
他从行李箱里翻出了自己的旧笔记本电脑——一台ThinkPad,陪他度过了在北京的最后三年。电脑里有他以前写的一些小工具,其中一个是一个串口调试助手,用来读取智能设备的通信数据。
他没有去碰电表。他知道私动电表是违法的。但他做了一件更简单的事:他在电表附近的墙壁上贴了一个小小的传感器——一个他几年前从公司实验室带回来的电流感应模块,本来是用来做智能家居demo的。这个模块可以非接触式地检测电线中的电流变化,采样率高达10kHz。
换句话说,他可以在不触碰电表的情况下,记录下他家电线中的电流波形。
他让传感器连上他的笔记本,开始采集数据。
数据很无聊。就是一条波动的曲线,随着家里电器的开关而起伏。冰箱的压缩机每隔四十分钟启动一次,产生一个持续约三分钟的稳定电流;热水器的功率最大,一开就是两千瓦;母亲的卧室灯是LED的,功率很小,几乎淹没在噪声里。
他采集了三天,然后开始分析。
第一天,他只是做了基本的负荷分解,确认了各电器的工作模式。第二天,他注意到一个异常:在深夜两点到四点之间,电流波形中出现了一些微小的、规律的脉冲。这些脉冲不是任何电器产生的——它们的频率太高了,远超家用电器的正常工作频率,而且它们呈现出某种编码的模式。
像是数据传输。
陈默盯着屏幕上的波形,后背开始发凉。
他花了第三天时间把这些脉冲提取出来,做了一次频谱分析。结果让他几乎不敢相信:这些脉冲是一种载波通信信号——通过电力线本身传输的数字信号,频率在几百kHz的范围内,用的是OFDM调制方式。
电力线载波通信,PLC(Power Line Communication)。这是一种成熟的技术,用来在电力线上同时传输数据和电力。智能电表确实需要PLC来和电网的集中器通信,上传用电数据。
但问题是:他检测到的这些数据包,远远超出了电表正常通信所需的量。
一个智能电表每天上传一次用电数据就够了,最多每小时一次。但他检测到的数据流是持续的,密集的,像是……在实时传输什么。
他花了一个通宵,写了一个PLC信号的解码脚本。他的传感器采样率不够高,解码出来的数据有大量误码,但他还是拼出了一部分内容。
那些数据是音频。
压缩过的、低码率的、但确确实实是音频数据。
陈默坐在黑暗的厨房里,手心全是汗。窗外的月光照进来,在地板上画出一个长方形的光斑。他听见楼上母亲翻身的声音,听见隔壁老王家的狗在叫,听见远处铁路上货车的汽笛声。
然后他意识到一件事:他听到的这些声音,电表也能听到。
五
他需要确认这件事。
不是”基本确认”,不是”大概率”。他需要证据。
于是他做了一个实验。
第二天上午,他母亲去镇上进货,家里只有他一个人。他打开了客厅的老式收音机——那是他父亲在世时最喜欢的东西,调到一个没有信号的频段,让沙沙的白噪声充满房间。然后他在厨房,对着墙壁,用正常的音量说了一句话:
“电表里有鬼。”
说完之后,他关了收音机,打开笔记本,查看刚才采集到的数据。
解码后的音频有大量噪声,但他能清楚地听到自己的声音,被压缩得有些失真,像是从水底传上来的,但每一个字都清晰可辨。
“电表里有鬼。”
他又听了一遍,确认自己没有听错。然后他把那段音频导出,存到了一个加密的U盘里。
他靠在椅背上,闭上了眼睛。
问题是:电表是怎么采集音频的?
答案很简单:每个智能电表里都有一个微型麦克风。这在技术上是完全可以实现的——一个MEMS麦克风只有几毫米大小,成本不到一块钱,完全可以集成到电表的电路板上。而且电表装在每家每户的门口或走廊里,那个位置正好能采集到室内的大部分声音。
但”可以”和”已经”是两码事。他需要打开电表看一眼。
他没有那个胆子。不,不是胆子的问题。就算他打开电表,看到了麦克风,他又能怎样?他一个人,在一个小镇上,面对一家深圳的科技公司和整个电力系统。他连律师都不认识。
他给刘琴发了一条微信。
“你上次说的电表的事,能详细说说吗?”
刘琴很快回复了:“你来学校吧,放学后我在办公室等你。“
六
镇中学还是老样子。三栋教学楼,一个操场,操场边的樟树比陈默记忆中又高了一截。他走进学校的时候正好是放学时间,穿着校服的学生们三三两两地往外走,看见他这个陌生人,有几个多看了两眼。
刘琴的办公室在三楼,门开着。她坐在办公桌前批作业,桌角放着一杯凉了的茶。
“坐。“她指了指旁边的椅子。
陈默坐下来,开门见山:“你觉得电表有问题,是因为什么?”
刘琴放下红笔,想了想:“有几件事。第一件是电费。我家就我一个人,平时用电很规律,但换了电表之后,电费波动很大,有时候一个月八十,有时候一百五。我去供电所问过,他们说智能电表计量更精确,有些以前检测不到的耗电现在能检测到了。”
“第二件呢?”
“第二件比较奇怪。“刘琴犹豫了一下,“我有个学生,叫小薇,初二,成绩很好,但家庭情况不太好——父亲在外地打工,母亲走了,她跟着奶奶生活。上个月她突然不来上学了,我去做家访,她奶奶说小薇天天把自己关在房间里不出来。我问原因,她奶奶说小薇说’电表里有人说话’。”
陈默的心猛地跳了一下。
“当时我以为她是学习压力太大,产生幻觉了。“刘琴继续说,“但后来我又听说,镇上有好几个老人也说类似的话——说晚上能听到电表嗡嗡响,好像有人在里面说话。大家都觉得是电表的正常运行噪声,没当回事。”
“但你觉得不是噪声。”
“我不知道。“刘琴看着他,“你是搞技术的,你应该比我懂。我只知道,一件两件可以说是巧合,但三件四件五件……就不太正常了。”
陈默沉默了很久。
“我需要你帮我一个忙。“他最终说。
“什么忙?”
“帮我找到小薇。我需要跟她谈谈。“
七
小薇的家在镇子东边,一条窄巷子的尽头。房子是老式的红砖平房,屋顶的瓦片缺了几块,用塑料布盖着。门前的水泥地上晒着萝卜干,空气里有一股咸菜的味道。
小薇的奶奶姓方,六十多岁,头发花白,但眼睛很亮。她认得刘琴——“刘老师”——但看见陈默时有些警惕。
“这是陈老师,我的朋友,搞技术的。“刘琴介绍道,“他想看看你家的电表,可以吗?”
方奶奶看了陈默一眼:“看电表干什么?”
“就是看看。“陈默笑了笑,“我是学这个的,想了解一下新电表是怎么工作的。”
方奶奶犹豫了一下,还是让他们进了屋。
小薇的房间在最里面。门关着,里面没有声音。方奶奶敲了敲门:“小薇,刘老师来看你了。”
门开了一条缝。陈默看见一张瘦小的脸,苍白,眼睛很大,但眼神有些空洞。她看了刘琴一眼,又看了陈默一眼,然后把门开大了一些。
房间里很暗,窗帘拉着。一台旧台式电脑放在书桌上,屏幕亮着,上面是一个编程界面——Python的IDLE。
陈默愣了一下。一个初二的女孩,在自学编程。
“小薇,这是陈老师,他懂电脑。“刘琴说,“你想跟他说说吗?”
小薇没有说话。她走到书桌旁边,指了指墙上——电表就装在她房间外面的走廊里,离她的床头只有一墙之隔。
“它在听。“小薇终于开口了,声音很小,像是从喉咙深处挤出来的,“晚上的时候,它在听。”
“你听到了什么?“陈默问。
“嗡嗡的声音。然后……”小薇停顿了一下,“然后像有人在很远的地方说话,听不清说什么,但就是有人在说。”
陈默蹲下来,让自己的视线和小薇平齐:“你确定不是做梦?”
小薇看了他一眼。那个眼神让陈默想起了一些东西——他在北京加班到凌晨三点的时候,屏幕上代码的荧光映在脸上,窗外是永远不会完全黑下去的城市天空。那种孤独的、清醒的、确定自己没有在做梦的眼神。
“我确定。“她说。
八
他做了第二个实验。
这一次,他需要更精密的设备。他给在北京的前同事李昆发了一条消息,问他能不能帮忙寄一些东西过来。李昆问他要什么,他说:一个高频SDR(软件定义无线电)接收器,一个定向麦克风,和一个信号分析软件的授权码。
李昆说:“你在老家搞什么?矿机?”
“差不多。”
三天后,一个快递到了。陈默在自己房间里拆开包装,把设备连接好,然后把定向麦克风对准了墙外的电表。
这一次,他得到了更清晰的数据。
SDR接收器可以捕获更宽频段的信号。他不仅在电力线上检测到了数据传输,还在无线频段——2.4GHz——检测到了另一个数据通道。
电表有Wi-Fi。
他之前没注意到这一点,因为电表上没有天线。但他拆开电表外壳的时候(他用了一个月的时间才鼓起勇气做这件事),发现电表的电路板上确实有一个Wi-Fi芯片——一个贴片天线,印在PCB上,不仔细看根本看不出来。
这意味着电表不仅在通过电力线传输数据,还在通过Wi-Fi传输。双通道,冗余设计。
他捕获了Wi-Fi数据包,解密花了他两天时间——加密强度不高,用的是一种自定义的轻量级加密算法,对于他这个级别的人来说,破解只是时间问题。
解密后的数据让他彻底坐不住了。
每块电表每秒钟上传一次数据包。数据包的内容包括:
- 当前电流、电压、功率数据
- 环境噪声等级
- 麦克风采集的音频片段(经过压缩,每段约5秒)
- Wi-Fi信号范围内的设备MAC地址列表
- 电表所在位置的GPS坐标(可能是出厂时写入的)
音频数据被上传到一个IP地址。他追踪了一下,那个IP属于阿里云的一台服务器,域名是data.tingyao-tech.cn。
霆耀科技。
他把所有数据都存进了加密U盘,然后做了备份。一份藏在母亲超市的仓库里,一份塞在了他的行李箱夹层中。
然后他开始想一个问题:现在怎么办?
九
他想到了几个选项。
第一,报警。但他能报什么警?说电表在偷听?他会需要出示证据,而他的证据是通过非合法手段获取的——他拆了电表,监听了通信信号。在任何法律框架下,这些证据的合法性都是存疑的。
第二,找媒体。但他不认识任何记者。而且,如果霆耀科技真的在通过电网大规模监听,那这背后一定有更强大的力量在支撑。媒体敢不敢报、能不能报,都是未知数。
第三,发到网上。匿名发帖,把数据和发现公之于众。这是最直接的方式,但也是最危险的。他不知道对方有多强大,不知道他们会怎么反击。
第四,什么都不做。假装什么都没发现,继续在小镇上过日子。等找到新工作,就去别的地方。
他选了第五种。
他给刘琴打了一个电话。
“我需要你帮我找几个人。“他说。
“什么人?”
“镇上那些说过’电表里有声音’的人。所有你能找到的。”
电话那头沉默了几秒。“你确认了?”
“确认了。”
“有多严重?”
“比你想象的严重。“
十
刘琴在三天内找到了七个人。
其中有三个是老人——六十岁以上的独居老人,听力虽然退化,但对异常的嗡嗡声特别敏感。有两个是年轻妈妈,她们说孩子经常对着电表的方向咿咿呀呀,像是在跟谁说话。一个是开五金店的老板,他说他老婆半夜起来上厕所,经过走廊的时候,听见电表发出一阵”刺啦刺啦”的声音,像收音机串台。最后一个是小薇。
陈默在刘琴的办公室里,跟这七个人(或者说七个家庭)谈了一遍。他没有直接说”电表在偷听”,而是用一种更委婉的方式——他说自己是一个技术顾问,受委托来调查新电表的质量问题。
老人们的反应最直接。一个姓吴的爷爷拍着桌子说:“我早就说那个电表不对!我一个月用多少电我心里没数吗?以前四五十块,现在动不动一百多!”
年轻妈妈们更关心孩子的安全:“你的意思是,电表会辐射?影响孩子健康?”
五金店老板最精明:“你就直说吧,是不是电表有问题?能不能告他们?”
小薇什么都没说。她坐在角落里,抱着膝盖,看着陈默。陈默知道,在这所有人里,只有小薇真正听到了那些声音——那些被压缩、被传输、被远方的某个服务器接收和处理的、来自她日常生活的声音。
陈默做了一个决定。
“我会把这件事公开。“他说,“但在那之前,我需要你们的帮助。“
十一
他花了两个星期,做了一件他以前在北京从来没有做过的事——他写了一份完整的调查报告。
不是那种大厂里的PPT,不是那种满页都是”赋能""生态""闭环”的商业文档。是一份老老实实的、有数据、有证据、有分析的技术报告。
报告的结构是这样的:
- 背景:川山坪智慧电网改造项目概述
- 技术分析:霆耀科技智能电表的硬件拆解和通信协议分析
- 数据采集:通过合法(电流感应)和非完全合法(拆解电表)手段获取的数据
- 数据分析:音频数据的内容和解码过程
- 隐私影响评估:电表采集的数据可以推断出什么
- 法律分析:相关法律法规和可能的违法条款
- 建议
第六部分是刘琴帮他写的——她虽然教数学,但她有一个大学同学在长沙做律师。那个律师看了数据之后,沉默了很久,然后说了一句:“这要是真的,那就是建国以来最大的隐私泄露案。”
陈默不知道是不是”最大”,但他知道这很大。三千多户,一万多人口,每个人的日常生活声音都被采集、压缩、上传、存储。这些数据可以用来做什么?太多了。可以用来判断你什么时候在家、什么时候出门;可以用来判断你家有几口人;可以用来判断你在看什么电视、在用什么电器;甚至,如果你的声音足够清晰,可以用来判断你在说什么。
他忽然理解了一件事:他在北京做的事情,和霆耀科技做的事情,本质上是同一种事。他在大厂里分析用户的点击和停留时间,霆耀科技在小镇上分析居民的用电和声音。形式不同,逻辑一样——收集数据,分析行为,然后……然后什么?
他在大厂的时候,这些数据被用来做推荐、做广告、做用户画像,最终转化为收入。霆耀科技呢?他们收集这些声音数据,是为了什么?
答案在他的调查报告的附录里。他在追踪那个IP地址的时候,顺便查了一下data.tingyao-tech.cn的SSL证书信息。证书的有效域名列表里,除了霆耀科技的域名之外,还有一个:voice-data.deepbluecap.cn。
深蓝资本。
领投了霆耀科技B轮的那家投资公司。
他再往下查。深蓝资本的合伙人名单里,有一个名字让他停住了:蒋鸣。
和霆耀科技的法人代表同名。
同一个人。
十二
他把报告发给了四个人。
第一个是刘琴。她看完之后,沉默了很久,然后说:“你打算怎么做?”
第二个是那个长沙的律师。他看完之后说:“我建议你先走行政投诉渠道,同时保留向法院起诉的权利。但说实话,这种案子……地方政府可能不希望你闹大。”
第三个是一个他以前在北京认识的记者,姓赵,在某家财经媒体做调查报道。赵记者看完之后说:“你这个料很猛,但我需要时间去核实。你能保证数据的真实性吗?”
“能。”
“你愿不愿意实名?”
陈默想了想:“愿意。”
第四个人,是一个他没有预料到的人。
他在整理数据的过程中,发现了一件奇怪的事:霆耀科技的服务器在每天凌晨三点会进行一次数据同步,把当天采集的所有数据上传到一个云存储桶。他在追踪这个云存储桶的时候,发现它的访问日志里有一个异常——有一个IP地址在过去三个月里,一直在定期访问这些数据,但这个IP不属于霆耀科技,也不属于深蓝资本。
它属于一家叫”华信数据”的公司。
华信数据,他在北京的时候听说过。那是一家做大数据分析的公司,主要客户是政府部门——公安、城管、住建。说白了,就是给政府做数据中台的。
如果华信数据在访问这些音频数据……
他不敢再想下去了。
他把这条线索也写进了报告的附录,标注为”未确认”。然后他把报告的最后一版,发给了第四个人——他在GitHub上偶然发现的一个安全研究者的邮箱。那个研究者在三个月前发过一篇博客,讨论了智能电网的安全隐患,其中提到了”侧信道攻击”和”隐私泄露”的可能性。
他不知道那个研究者会不会回复。但他觉得,多一个人知道,就多一分安全。
十三
报告发出去之后的第三天,有人敲响了他家的门。
不是警察,不是霆耀科技的人。是一个穿着灰色夹克的中年男人,四十岁左右,头发很短,戴着眼镜,看起来像一个普通的公务员。
“陈默先生?“他问。
“你是谁?”
“我叫许工明,岳阳市电力公司的。“他递过来一张名片,“我看了你的报告。”
陈默接过名片,看了一眼。名片上写的是:岳阳电力智慧电网项目部 副主任。
“谁给你的报告?”
“这不重要。“许工明笑了笑,“我能进去坐坐吗?”
陈默犹豫了一下,还是让他进了门。他母亲不在家——她每天上午去超市,要到中午才回来。许工明坐在客厅的沙发上,环顾四周,目光在那个旧收音机上停留了一秒。
“陈先生,你的报告写得很好。“许工明说,“技术分析很专业,数据也很扎实。不像是外行写的。”
“你到底想说什么?”
许工明的笑容淡了一些。“我想说的是:你说得对。电表确实在采集音频数据。”
陈默的心跳加速了,但他没有表现出来。
“但是,“许工明接着说,“这件事没有你想的那么简单。”
他开始解释。按照许工明的说法,音频采集功能是霆耀科技在电表的设计方案中就包含的,但它的初衷不是监听,而是”故障检测”——通过分析电网中的声音特征,来判断变压器、开关柜等设备是否存在故障隐患。
“这个技术在电力行业叫’声学诊断’,是很成熟的技术。“许工明说,“但霆耀科技在实施的时候,把采集的范围从设备扩大到了居民端。这一点,我们是不知情的。”
“不知情?“陈默觉得这个说法有些可笑,“三千多块电表装在你的管辖范围内,你说不知情?”
许工明的表情没有变化。“我说的是事实。霆耀科技在竞标的时候,方案里没有包含音频采集功能。这个功能是他们后来通过固件升级加上去的。”
“固件升级?”
“对。电表的固件可以远程升级。霆耀科技在改造完成之后,通过PLC通道向所有电表推送了一次固件更新。我们当时以为是一次常规的bug修复。”
陈默沉默了。他想起他检测到的那个固件——电表的固件版本号是v2.3.7,比霆耀科技官网上公布的最新版本(v2.1.2)高了好几个小版本。那些多出来的版本号,每一次更新,都可能是音频采集功能的逐步完善。
“那你现在知道了,“陈默说,“你打算怎么做?”
许工明看着他,沉默了几秒。
“这就是我来的目的。“他说,“我需要你的帮助。“
十四
许工明不是来找他麻烦的。他是来找盟友的。
按照许工明的说法,他早就对霆耀科技的电表起了疑心——不是因为音频采集,而是因为数据流量。作为电力公司的项目负责人,他可以监控到电网的数据传输情况。他注意到,自从那次固件升级之后,电网的数据流量增加了将近五倍。
“一个电表每天的数据量应该在几KB到几十KB之间。“许工明说,“但升级之后,每个电表每天的数据量飙升到了几MB。三千多个电表加起来,一天就是十几GB。这些数据都是通过我们的电网传输的,占用的是我们的带宽。”
他曾经向上面反映过这个问题,得到的回复是:“霆耀科技说是优化了数据采集精度,属于正常范围。”
“你信吗?“陈默问。
“不信。“许工明说,“但我一个副主任,说话没人听。”
陈默看着他。这个中年男人坐在他家的沙发上,穿着一件不太合身的夹克,说话的时候一直在搓手。他忽然觉得,这个人和自己很像——都是系统里的螺丝钉,看见了不对的东西,但不知道该怎么办。
“你想让我做什么?“陈默问。
“两件事。“许工明竖起两根手指,“第一,帮我证明音频数据被上传到了霆耀科技的服务器,并且可能被第三方访问。你的报告里有这个结论,但我需要更详细的证据链——完整的抓包记录、解码过程、音频样本。这些东西必须经得起法律审查。”
“第二呢?”
“第二,“许工明的声音低了下去,“帮我把这些东西安全地保存好。因为接下来会发生什么,我也说不准。”
陈默听懂了他的意思。
“你是说,有人可能会销毁证据?”
许工明没有直接回答。他站起身,走到窗边,看了一眼外面的小巷。巷子里空荡荡的,只有一只猫蹲在墙头晒太阳。
“陈先生,你知道川山坪这个示范项目是谁引进来的吗?”
“不知道。”
“是市里的一个领导牵线搭桥的。深蓝资本在这个项目上投了不少钱,项目本身也是一个’政绩工程’。如果现在曝出来电表在偷听,那不只是霆耀科技的事,牵扯到的人……”
他没有说完。
陈默走到书桌前,打开了笔记本。屏幕上是他那份数据分析报告的最后一版,附录里列着华信数据的IP地址。
“许主任,“他说,“我有一个问题。”
“你问。”
“华信数据是什么?”
许工明的脸色变了。
十五
那天晚上,陈默一个人坐在房间里,反复想着许工明离开前说的最后一句话:
“小心华信数据。那不是一家普通的公司。”
他开始重新审视自己手里的所有信息。霆耀科技、深蓝资本、华信数据——这三者之间是什么关系?
他画了一张关系图。霆耀科技负责硬件和现场实施,深蓝资本负责投资和资源对接,华信数据负责……数据处理?
不对。如果华信数据只是做数据分析,为什么要直接访问霆耀科技服务器的原始数据?正常的数据分析流程应该是霆耀科技把处理后的结构化数据交给华信数据,而不是让华信数据直接访问原始音频。
除非,华信数据需要的是原始音频本身。
一个做政府大数据的公司,需要一个小镇上所有居民的日常对话音频。
他想到了一个词:维稳。
然后他摇了摇头。他觉得自己想得太远了。他没有证据证明华信数据和政府之间有这种关系,他只有一个IP地址和一堆推测。
但推测有时候比证据更危险。因为推测会改变一个人的行为。
他打开了一个新的文档,开始写一份计划。
标题是:“川山坪电表事件——证据保全与公开计划”。
计划分三步:
第一步:证据保全。把所有的数据、报告、分析结果复制多份,存放在不同的物理位置。同时,把核心证据的摘要发送给他信任的几个人的加密邮箱。
第二步:信息公开。通过赵记者的媒体渠道,发布调查报道。同时在技术社区(安全客、FreeBuf等)发布技术分析。
第三步:法律行动。联合受影响的居民,向法院提起集体诉讼。
他写完之后,看了一眼窗外的月亮。月亮很圆,照亮了整个小镇的屋顶。远处的铁路上,一列火车正在驶过,轰隆轰隆的声音在夜空中传得很远。
他想起了小薇。那个初二的女孩,一个人在黑暗的房间里,对着墙壁说”电表里有人说话”。
没有人相信她。
现在有人信了。
十六
事情在第四步出了岔子。
赵记者的稿子被毙了。不是被编辑毙的,是被”上面”毙的。赵记者在电话里的声音很平静,但陈默听得出来那种平静背后的疲惫。
“领导说这个选题’时机不合适’。“赵记者说,“我争取了,但没用。”
“那你的意思是……”
“稿子我这边发不了了。但你的报告还在你手里,你可以走其他渠道。”
陈默挂了电话,坐在那里想了很久。
他走出了第五步。
他把报告的完整版上传到了GitHub,仓库名就叫”chuanshanping-smart-meter”。同时,他在V2EX、知乎和微博上发了帖子,附上了报告的链接和核心结论的摘要。
帖子发出后的第一天,没什么人注意。阅读量几百,评论十几条,大部分是”mark""技术帖顶一个”之类。
第二天,转发开始增多。有几个信息安全领域的大V转发了他的帖子,其中一个还专门写了一篇分析,认为他的技术分析”逻辑严密,证据链完整”。
第三天,事情发酵了。一家自媒体写了一篇文章,标题是《小镇三千户居民被电表偷听?前大厂工程师的惊人发现》,阅读量在一天内突破了十万。
然后,霆耀科技发了一份声明。
声明的措辞非常”公关”——首先否认了”监听”的指控,说电表的音频采集功能是”用于电网故障检测的声学传感器”,采集的数据”经过脱敏处理,不包含可识别的语音内容”。其次,声明指责陈默”未经授权拆解电表、监听通信信号”,“涉嫌违反《网络安全法》和《电力设施保护条例》“。最后,声明说霆耀科技”保留追究法律责任的权利”。
陈默看完这份声明,反而笑了。
因为他手里有一份证据,是霆耀科技无论如何也无法否认的——那些从电表数据流中解码出来的音频。
不是”不可识别的语音内容”,而是清清楚楚的、带着湖南口音的”电表里有鬼”五个字。
他把这段音频也上传到了GitHub。
十七
声明发出后的第二天,陈默接到了一个电话。
号码是深圳的。
“陈默先生,我是霆耀科技的法务总监,姓周。“电话那头的声音很年轻,但语气很老练,“我代表公司正式通知你,我们将在四十八小时内向你发送律师函,起诉你侵犯商业秘密和破坏电力设施。”
“随你们。“陈默说。
“另外,“周法务顿了顿,“我建议你把GitHub上的内容删除。你手里的数据是通过非法手段获取的,在法庭上不会被采信。而且,继续传播这些内容,只会让你的处境更不利。”
“你说的’非法手段’,是指我发现你们在偷听三千户居民这件事吗?”
电话那头沉默了几秒。
“陈先生,我理解你的心情。但你可能不太清楚你在跟谁打交道。”
“我知道我在跟谁打交道。一个偷听公民隐私的公司。”
“不是公司。“周法务的声音低了下去,“公司只是执行方。”
陈默握着手机的手紧了紧。
“你什么意思?”
“我的意思是——这个项目不是霆耀科技自己想做就能做的。你好好想想,一个一千两百万的项目,覆盖三千多户居民,涉及到电网基础设施的改造,这种事情,没有地方政府的全力支持,可能吗?”
“你在说这是政府主导的?”
“我没这么说。“周法务的语气又恢复了职业化,“我只是在建议你,在做任何决定之前,想清楚这件事的复杂性。有些事情,不是非黑即白的。”
电话挂了。
陈默站在窗前,看着外面的街道。黄昏的光线照在小巷的青石板上,一个老人推着一辆三轮车缓缓经过,车上装满了刚从地里摘的白菜。
他忽然想起了一件事。许工明说过,这个项目是”市里的一个领导牵线搭桥”的。
哪个领导?
十八
他没有时间去找答案了。
因为第二天早上,他家的门被敲响了。这一次不是许工明,也不是霆耀科技的法务。是两个穿着制服的人。
“陈默先生?我们是岳阳市公安局网安支队的。请你配合我们调查一起涉嫌非法侵入计算机信息系统的案件。”
他们出示了证件和传唤证。陈默看了一眼传唤证——案由是”涉嫌非法获取计算机信息系统数据”。
他被带到了岳阳市公安局。
审讯室很小,白墙,一张桌子,两把椅子。头顶的日光灯嗡嗡响着,让陈默想起了那些电表。
审讯他的不是那两个穿制服的人,而是一个便衣,四十岁左右,戴着一块看起来不便宜的手表。
“陈先生,你在GitHub上发布的那些数据,是怎么获取的?“便衣开门见山。
“我用了一个电流感应器,贴在电表附近的墙壁上,采集了电力线的电流波形。然后通过波形分析,解码出了PLC通信信号。”
“你有没有拆开过电表?”
陈默犹豫了一秒。“有。”
“为什么?”
“因为我想确认电表里是否有音频采集设备。”
“你确认了吗?”
“确认了。电表的电路板上有一个MEMS麦克风。”
便衣在他的笔记本上写了几个字。陈默看不到他写了什么。
“你知道,拆开电表是违反《电力设施保护条例》的吗?”
“知道。”
“那你还拆了?”
“因为我认为,电表采集居民的音频数据,严重侵犯了公民隐私权。这个行为的严重性,远远超过我拆开电表的行为。”
便衣抬起头看了他一眼,表情说不上是赞赏还是反感。
“陈先生,法律不是你认为怎样就怎样的。你的行为已经涉嫌犯罪,这一点你清楚吗?”
“清楚。”
“那你愿意配合我们,把GitHub上的内容删除吗?”
陈默看着他,没有说话。
审讯持续了四个小时。他们反复问他数据获取的过程、发布的动机、是否有”境外势力”的参与(这个问题让他差点笑出来)。他的回答始终一致:他是一个前技术工程师,发现了电表存在隐私问题,认为公众有权知道,所以公开了调查结果。
最后,他们让他签了一份材料,说他是”取保候审”状态,在案件调查期间不能离开岳阳。
他签了。
十九
取保候审的第一天,他回到川山坪。
母亲站在门口等他。看见他走过来,什么也没说,只是拉着他进了屋,端了一碗面放在桌上。
“吃。”
他吃了。还是很多辣椒。
吃完之后,他母亲坐在对面,看着他。
“你做了什么坏事?”
“没做坏事。”
“那警察为什么来找你?”
“因为……”他想了想,怎么跟一个六十多岁的老太太解释智能电表、PLC通信和隐私泄露,“因为电表有问题,我发现了,然后告诉了别人。电表公司不高兴了。”
“电表有什么问题?”
“它在偷听。”
他母亲愣了一下,然后笑了:“你是读书读多了吧?电表怎么会偷听?”
“真的在偷听,妈。电表里面有一个小话筒,能听到我们说话。”
他母亲的笑容慢慢消失了。她看了看门口那个白色的小方盒子,然后又看了看陈默。
“真的?”
“真的。”
沉默持续了很长时间。厨房的灶台上,水壶烧开了,发出尖锐的哨声。他母亲起身去关火,回来的时候,手里多了一件事物——一把螺丝刀。
“那东西,能拆掉吗?”
“能。但拆了之后就没电了。”
“没电就没电。“他母亲说,“我不喜欢别人听我说话。”
陈默看着那把螺丝刀,忽然觉得鼻子有些发酸。
二十
他没有拆电表。但他做了另一件事。
他给许工明打了一个电话。
“我被取保候审了。”
电话那头沉默了几秒。“我知道。”
“你打算怎么办?”
“我?“许工明的声音里带着一丝苦涩,“我能怎么办?我只是一个副主任。”
“你手里有电网的数据传输记录,对吧?那些记录可以证明霆耀科技的电表上传了大量超出正常范围的数据。”
“可以。但那些数据在公司的服务器上,我没有权限拷出来。”
“你能不能截个屏?”
许工明沉默了很久。长到陈默以为他挂了电话。
“我做一件事。“许工明最终说,“但我做完之后,你不能再联系我了。”
“好。”
第二天,陈默的邮箱里收到了一封匿名邮件。附件是一张截图,显示了川山坪电网在最近一个月的每日数据流量统计。每一天的流量都在10GB到15GB之间——这是一个小镇三千多户电表的数据量。
按照正常智能电表的通信协议,每天的数据量应该不超过1GB。
那多出来的10GB以上数据去了哪里?
陈默把这张截图也上传到了GitHub。
二十一
事情的转折发生在他被取保候审的第十一天。
那天晚上,他正在房间里整理数据,忽然接到了一个陌生的电话。号码是北京的。
“陈默先生?我是中央网信办网络安全协调局的,姓方。“电话那头是一个中年女人的声音,沉稳、清晰,带着一种官式的礼貌,“我们注意到了你发布的关于川山坪智能电表的调查报告。我想跟你了解一些情况,可以吗?”
陈默的第一反应是:这又是哪个层级的人在试探他?
“你怎么证明你是网信办的?”
对方报了一个座机号码和一个分机号,说:“你可以打这个电话核实。”
陈默记下了号码,挂了电话,然后用座机打了过去。接电话的人确认了方姓工作人员的身份。
他回了电话。
方女士说,网信办已经关注到了他的报告和网上讨论,正在”评估相关情况”。她问了几个问题:数据获取的过程、音频内容的具体分析、是否有其他地区的类似案例。陈默一一回答。
最后,方女士说了一句话:“陈先生,感谢你的举报。我们会依法处理。请你注意安全,不要再公开讨论案件的细节。”
“你们会怎么处理?”
“这个我不能告诉你。“方女士顿了顿,“但我可以告诉你的是:你不是一个在孤军奋战。”
电话挂了。
陈默坐在黑暗的房间里,心跳得很厉害。他不知道这通电话意味着什么——是真正的转机,还是另一个层级的压制。但他知道一件事:他的报告已经被看到了,而且被一个足够高的层级看到了。
剩下的,不是他能控制的。
二十二
两个月后。
陈默坐在川山坪的超市里,帮他母亲看店。下午三点,阳光从门外照进来,在地上画出一道金色的光带。一只苍蝇在收银台上方嗡嗡地转圈。
他的手机震动了一下。是一条新闻推送。
标题是:湖南岳阳通报”智慧电网”项目违法违规问题:霆耀科技被立案调查。
他点进去看了。通报不长,主要是几个要点:
一、岳阳市”智慧电网示范项目”实施方霆耀科技在项目实施过程中,未经审批擅自增加居民端音频采集功能,严重违反《个人信息保护法》和《网络安全法》。
二、霆耀科技法人代表蒋鸣因涉嫌”侵犯公民个人信息罪”被公安机关刑事拘留。
三、岳阳市电力公司相关责任人因”监管不力”被给予党纪政务处分。
四、深蓝资本因”未尽尽职调查义务”被证监会约谈。
五、涉及居民隐私数据已全部删除,相关设备已拆除。
六、对于曝光此事的举报人陈默,“依法不予追究刑事责任”。
他看完之后,把手机放在收银台上,靠在椅背上,看着门外的阳光。
“依法不予追究刑事责任”。这句话的每一个字他都认识,但连在一起,他读出了一种很复杂的味道。它既是一种赦免,也是一种警告——“这一次不追究,下一次就不好说了”。
但他不想去分析这句话的弦外之音了。他只觉得累,非常累。
门口传来脚步声。他抬头一看,是刘琴。
“看到了?“刘琴问。
“看到了。”
刘琴在他旁边的塑料凳子上坐下来,看了看手机上的新闻,然后看向他。
“你怎么想?”
“我想……”陈默顿了顿,“我想喝杯茶。”
刘琴笑了。“你越来越像个老头了。”
“我在这个小镇上待了快半年了,不变老头才怪。”
超市外面,那块蓝色牌子——川山坪智慧电网示范点——还立在充电站旁边。但充电桩已经停用了,四根白色的柱子静静地站在那里,像四根被拔掉牙齿的兽骨。
陈默忽然说了一句:“小薇怎么样了?”
“回学校了。“刘琴说,“成绩还是很好。她上周交了一份信息技术课的作业——用Python写了一个简单的加密程序。”
“是吗?”
“是。她在程序里写了一句注释。”
“什么注释?”
刘琴拿出手机,翻出一张照片,递给他。照片上是小薇的电脑屏幕,IDLE界面里有一行绿色的代码,下面是一行注释:
# 有些声音,不是用来被听到的。
陈默看着这行字,沉默了很久。
然后他站起身来,走到门口。阳光很温暖,照在脸上,像是有人用手掌轻轻托着他的下巴。远处传来火车的汽笛声,悠长,缓慢,像一句还没有说完的话。
他回过头,对刘琴说:“走吧,去喝杯茶。“
尾声
后来的事情,陈默是从新闻上零星看到的。
霆耀科技被吊销了营业执照。蒋鸣被判了三年六个月——不是”侵犯公民个人信息罪”,最后定的是”非法经营罪”,因为法院认为音频采集功能”未造成严重后果”。深蓝资本被处以罚款,但没有任何个人被追责。岳阳市那个”牵线搭桥”的领导,调去了另一个市,级别没变。
华信数据?通报里没有提到这个名字。
许工明?陈默再也没有联系上他。他后来托人打听了一下,得到的消息是”调离了原岗位”。去哪里了,没人知道。
至于那三千多户居民,他们的电费恢复了正常。新换的电表是另一家公司的产品,没有音频采集功能,也没有异常的数据流量。居民们对此没有太多评论——对大多数人来说,电表就是电表,能用就行。
小薇后来考上了长沙的一所重点高中。陈默在她毕业那天去学校看了她,但没有上前打招呼。他远远地看见她站在校门口,手里拿着一个纸箱子,里面装着书和文具。她比半年前高了一些,脸上的苍白褪去了,取而代之的是一种安静的、坚定的表情。
她走向校门的时候,经过了走廊上那个已经被拆除的电表的位置。墙上留下了一个浅浅的印痕,像一块愈合了的伤疤。
她没有停步。
陈默也没有。
他在川山坪又住了一段时间,然后去了深圳,在一家小公司做安全研究员。工资不高,但够用。他偶尔会在技术论坛上写一些关于IoT安全的东西,标题都很朴素,像”智能电表通信协议的安全隐患分析”之类的。没有太多人看,但他不在乎。
有时候,深夜加班的时候,他会想起那个小镇。想起母亲煮的面,想起刘琴的粉笔,想起小薇的那行代码注释,想起许工明搓着手坐在沙发上的样子。
然后他会打开窗户,听听外面的声音。
城市的声音很嘈杂——汽车、空调、电梯、施工——但他知道,在这嘈杂的声音之下,还有另一些声音。它们不是被电表采集的,不是被服务器存储的,不是被算法分析的。它们只是存在着,像河流一样,从每一个人的生活中流过,流向前方某个不可知的入海口。
有些声音,不是用来被听到的。
但它们值得被记住。
(全文完)