凌晨刷 HN,看到个标题,《Eye of Sauron: Long-Range Hidden Spy Camera Detection》。第一反应:又一个借托尔金名字的监控项目,划过去算了。
没划。往下翻了二十来条评论,翻到一条——有人把论文 Figure 15 放大,指着笔记本旁边那台设备说:这是 Ettus USRP B210,挂一块 PCB 对数周期天线。
看到这条我把手机放下了。
一台软件无线电。这套被标题包装成“索伦之眼”的东西,核心硬件是一台能直接下单买到的通用 SDR,加一套自己写的识别软件。评论区那人说得更直白:这活专业 TSCM 公司干了大概三十五年,只不过以前的设备又大又贵,现在小了、便宜了。
我不觉得这是贬低。恰恰相反,这是这篇东西最值得看的地方。
因为配套的另一条评论是:几个大学生,一百来美元的零件,一台笔记本,开源软件,跑通了。
这两条放一起,真正的新东西就出来了——不是“能探 30 米”,是“门槛掉到宿舍水平了”。三十米这个数字可以争,门槛掉下来这件事没得争。
它聪明的地方不在接收,在发射
先把机制捋清楚,大部分转发只截了“30 米”这个数。
摄像头干活的时候,内存一直在读写。论文盯的是 DDR3——它跑在固定频率上,读写是周期性的,辐射出去的东西就带上一个稳定的包络。你拿接收机对着这段频率看,看到的不一定是摄像头,但可能是“有个东西在这儿按固定节拍喘气”。
问题是,被动等它喘,信噪比很难看。场景不动,编码器就偷懒,码率压到很低,内存活动跟着降,你那点包络就淹进底噪里了。
所以他们加了一步:拿频闪去照场景。
灯一闪,画面就在“变”和“不变”之间反复横跳,编码器被迫不停重新算,码率抬上去,内存活动跟着抬上去。这时候再去相关,信号就浮出来了。下面这段是示意,不是能跑的代码,我只是想说明它在干什么:
# 大意:灯的相位和辐射包络做相关,不相关的噪声自己就被平均掉了
for phase in range(0, period):
env = capture(center=2.4e9, bw=20e6, dur=50e-3)
score[phase] = correlate(env, strobe_template(phase))
评论里有人专门点了这句,说这跟“守在那儿等随机辐射”是两回事。对,这是主动探测。它不是在监听设备,是在挑逗设备,逼它自己把嗓门提高。
这一步是整篇论文真正的手艺。硬件是买的,思路是自己的。
但挑逗有个前提:你得挑得动
我一开始觉得这个“主动刺激”是纯增益——信噪比上去了,还能定位,多好。后来把几条评论串起来看,才发现它同时是这套方法的天花板。
挑不动的东西,它就瞎。
论文自己在局限性里承认了第一条:部分手机摄像头很难探。低功耗内存,加上整体屏蔽做得好。这条值得琢磨——它说明“能不能被看见”取决于这台设备的功耗预算和封装工艺,而不是它是不是摄像头。同样叫摄像头,一个用 DDR3 的便宜货和一个把内存塞进 SoC 里的手机,对这套方法是两种生物。
第二条更狠,评论区有人顺着往下推:如果设备干脆不做压缩,直接把原始像素往存储里怼呢?码率恒定,内存活动恒定,你闪你的灯,它该怎么写还怎么写,那个“随场景波动”的特征就没了。
我算了下这个代价:
1920 × 1080 × 3 B × 60 fps ≈ 373 MB/s ≈ 1.3 TB/小时
跟评论里说的“不到一小时占满 1TB”对得上。所以这条路不是没人想过,是存储扛不住——除了那种只录几分钟、录完就走的场景。画外音:安全设计经常不是被攻破的,是被成本劝退的。
第三条是历史课。有人把 The Thing 翻出来了,苏联那个被动监听装置,不被外部射频照到就完全不耗电,所以极难发现。这类东西你在频谱上找它,等于在停电的房间里找一盏没插电的灯。
顺带有人提了 van Eck,1985 年那篇公开的显示器辐射分析,十几美元的设备加一台电视机,几百米外把真实系统读出来。但同一条串里也有人泼冷水:现代显示器上这招难太多了,像素时钟已经过 1 GHz,被切换的功率更小,还挤在极薄的空间里,OLED 的阴极层本身就像一层屏蔽。
这几条摞起来,我看到的是同一个结构:探测能力真正吃的不是“设备有没有辐射”,而是“设备有没有能被外部信号挑动的活动”。辐射永远有——评论里有人说得很实在,摄像头必须留光学开口,零泄漏不可能,屏蔽只能减弱。可“有辐射”和“能被打出来”中间隔着一整套工程。
反制方案里,我只信便宜的那一半
评论区给了不少对策,我按价格排一下,这类讨论最容易飘。
最便宜的:可乐罐。有人转述论文里的屏蔽测试,用铝皮把摄像头包起来,探测距离从 30 米掉到 2 米左右。另一条更系统一点——整个电路封进金属壳,只留镜头孔和天线口,芯片封装旁边加滤波,把高电位差的走线缩短,这样普通摄像头从 20 米压到 1 米以内。
从 30 米到 2 米,从 20 米到 1 米。这个衰减幅度大得有点好笑。也就是说,这套探测方法对“做了屏蔽的设备”基本没脾气,它真正能抓的,是那些压根没做屏蔽的便宜货。
而偷拍设备恰好就是这么个品类。成本敏感,走量,塑料壳,能省一颗滤波电容就省一颗。
所以我不太认同“这论文没用”那派。它没用在大规模搜查上,它有用在“我怀疑这个房间里有东西”这个具体场景上。这个场景很小,但很真。
贵的那一半我就不太信了。有个方案是把编码器做成密码学式的“恒定时间、恒定功耗”——每个单元的前缀本身就能近似表示内容,按精度需要回退写入位置,这样内存活动不随画面波动。思路漂亮,但我没想明白工程上怎么落地:
- 码率 = f(画面复杂度) // 场景一动,内存就跟着喘
+ 码率 = const // 画质随它去,辐射包络先平了
恒定码率在有损压缩里意味着画质跟着画面复杂度上下跳。用户第一个不答应。画外音:安全方案撞上产品需求,输的从来是安全。
还有一条我觉得更现实:加大内存缓冲,把处理和辐射在时间上推迟。听着土,但它不需要改编码器。可惜小摄像头加不了大内存,封装和体积卡在那儿。所以最后还是那句——做好屏蔽更便宜、更简单。
至于“随机间歇停机躲避扫描”和“持续发射把有用信号淹进噪声”,这俩是纯对抗思路,放进具体产品里会打架:前者让你漏录,后者让你耗电发热。能想到,不一定能用。
中间插一句:那个叫 QuadRF 的东西
评论区有人提到 Crowd Supply 上的 QuadRF。我特地去看了下描述,然后有点想笑。
它只能发现工作在 5GHz、正在主动推流的 WiFi 摄像头。
2.4GHz 的,瞎。走有线以太网的,瞎。只往 SD 卡里本地录像、根本不联网的,瞎。
这不是说它不好,是这类产品被“智能家居摄像头”这个主流形态带偏了——它假设对手会联网。可真正需要你去搜的房间,里面那个东西大概率不联网,联网反而容易被你发现。花钱买一个只能抓最笨那一类的东西,这属于缴智商税。
同一条串里有个老哥给的办法,反而更管用:进了陌生房间,关灯,拿手机摄像头环视一圈。任何在发红外的隐藏摄像头都会亮成一个明显的点。
成本:零。
我不是说这能替代频谱法——它抓不到不做红外照明的。但在“我今晚要睡这个房间”这个真实场景里,它的投入产出比高到没法看。我们在上面聊 USRP B210、聊恒定功耗编码器,聊得挺热闹,最后解决问题的是手机后置镜头。
那些我不同意的判断
有条评论说,既然现在大量设备标配内存,那这类电磁探测思路或许也能用来发现本地跑的 AI 硬件。
我不同意。那些东西在动、在算、在发热,你要发现它,根本不需要一台软件无线电。这是典型的“手里有锤子,看什么都像钉子”。
还有人说,这方法在 2026 年还算前沿吗,情报机构早就会了吧。这个质疑成立,但问偏了。学术界做的从来不是“第一个会”,是“第一个能公开复现”。三十五年的手艺摊到桌面上,让几个学生花一百美元重做一遍——这件事本身的价值,比多探十米大得多。这里我前面说的“门槛掉下来”其实还说得不够狠,它掉下来的方式比数字本身更值得记:不是设备变便宜了,是“知道该拿这设备去听什么”这件事,从行业里散出来了。
至于那个 Eye of Sauron 和 Palantir 的命名之争,还有人在评论区吵得挺认真。画外音:托尔金要是知道自己的名词全被监控技术借走了,大概会不高兴。跑题了,回来。
我会带走的一条
以后看到任何“能探测 XX”的东西,先翻到实验装置那张图,把里面每一台仪器认全了,再决定要不要激动。
图 15 那台 USRP B210 告诉我的事,比摘要里那个 30 米多得多。
