Galaxus 报道称,婴儿摄像头录像可被随意访问;The Verge 报道称,约有 1.1 百万台 Meari 设备受到影响。对我而言,教训很明确:如果背后的平台没有按设备清晰隔离消息、图像或密钥,单靠登录并不能保护宝宝的房间。Timmy 无法解决世上所有安全问题,但 Timmy 的关键媒体机密和配对密钥并不存放在云摄像头平台中。
Meari 事件中似乎出了什么问题
公开报道描述了一个白标平台。许多面向消费者的品牌都在销售依赖同一套 Meari/CloudEdge 基础设施的摄像头。因此这起事件尤其重要:共享平台一旦错误划定授权边界,暴露的就不只是一台薄弱的摄像头,而是整批设备。
报道中的问题不止是默认密码太弱。消息来源提到 MQTT 消息缺少足够的按设备订阅控制、图像 URL 可公开访问、图像混淆薄弱,以及静态密钥或可从应用中提取的密钥。这是平台层面的失败:基础设施可能泄露本不该向其他账户提供的数据。
| 云摄像头的风险 | Timmy 的应对设计 |
|---|---|
| 后端存储或分发图像事件。 | Timmy 不会在云端存档宝宝房间的图像;媒体通过实时 WebRTC 传输。 |
| 代理或存储桶必须为每台设备做到完全正确的授权控制。 | Firestore 只承载配对和信令数据;SDP/ICE 在写入前已加密。 |
| 静态密钥可能影响整批设备。 | 每次配对都会在设备上生成各自的、基于 P-256 ECDH 派生的密钥。 |
| 中继路径可能被误认为可以访问媒体。 | TURN 转发加密的 SRTP 数据包,但不会获得媒体密钥。 |
Timmy 如何生成密钥
由四个字符组成的 Timmy 代码本来就不是密钥。在代码中,它只是一个会合点:应用会从中派生出一个 meetingKey ,这样两台设备就能找到同一个 Firestore 公钥交换。私有 ECDH 密钥永远不会离开设备。
随后,两台设备会计算出相同的 P-256 ECDH 共享密钥。配对密钥在本地派生。两位数 SAS 由共享密钥和两台设备排序后的公钥共同派生。如果密钥交换遭到篡改,设备会显示不同的数字,提醒用户不要确认此次配对。
sequenceDiagram
participant Baby as Baby device
participant Firestore as Firestore meeting point
participant Parent as Parent device
participant Turn as TURN relay
Baby->>Baby: Generate P-256 ECDH keypair
Parent->>Parent: Generate P-256 ECDH keypair
Baby->>Firestore: Write public key only under meetingKey
Parent->>Firestore: Write public key only under meetingKey
Firestore-->>Baby: Parent public key
Firestore-->>Parent: Baby public key
Baby->>Baby: Compute sharedSecret + SAS
Parent->>Parent: Compute sharedSecret + SAS
Baby-->>Parent: Humans compare SAS on both screens
Baby->>Firestore: Write SDP/ICE encrypted with AES-256-GCM
Parent->>Firestore: Write SDP/ICE encrypted with AES-256-GCM
Baby-)Turn: WebRTC media as DTLS/SRTP packets
Turn-)Parent: Relay forwards encrypted packets
Note over Turn: TURN sees network metadata, not media keys
简化版 Timmy 安全链路:Firestore 用于会合和传输信令;TURN 仅负责中继;媒体始终由 WebRTC 加密。
为什么 WebRTC 媒体无法被悄悄观看
WebRTC 不只是“发送视频”。媒体传输前,设备会进行 DTLS 握手。音频和视频的 SRTP 密钥由这一安全传输层派生。之后媒体数据包会以 SRTP 加密。TURN 服务器可以转发这些数据包,但不会获得解密音频或视频所需的密钥。
Timmy 在此之前还增加了一层保护:SDP offer、SDP answer 和 ICE 候选等信令数据,在到达 Firestore 前会使用 AES-256-GCM 加密。Firestore 只帮助设备协商连接;明文视频、音频或明文信令并不应存放在那里。
Timmy 仍未声称能做到什么
任何严肃的婴儿监护器都不该声称自己绝不会被攻击。如果手机被入侵,任何应用都可能受到攻击。恶意应用版本会改变风险模型。服务器配置也必须始终正确。Timmy 更谨慎的主张是架构层面的:它避免让后端可读取宝宝房间的媒体内容,并让安全关键的配对逻辑能在公开核心项目中被审查。
选购任何婴儿摄像头时该问的问题
- 厂商会存储图片或视频片段吗?
- 媒体 URL 是否私有、有效期短,并且按设备授权?
- 密钥是按设备或每次配对生成,还是以静态形式内置在应用中?
- 代理是否只能传递与你实际拥有的设备相关的消息?
- 配对时,用户能否发现中间人攻击?
查看代码
来源
- 婴儿摄像头录像可被自由访问 · Galaxus
- 一百万台婴儿监护器和安防摄像头很容易被黑客查看 · The Verge
- 没人会把宝宝晾在角落里 · Sammy Azdoufal
- 同一事件的家长指南 · Baby Monitor Timmy