博客

为什么宝宝监护应用需要可审计的安全核心

对于宝宝监护器来说,仅凭安心感还不够。关键部分必须可供审查。

问题所在:盲目信任

安装宝宝监护应用时,你就让它接触到一个非常私密的空间:宝宝的房间。 应用会收听声音,有时也会查看画面。与此同时,父母往往无从了解后台发生了什么:音视频流是否经过第三方服务器?是否收集使用数据?从技术上讲,谁可以访问相关内容?

坦白说,很多应用的情况你无从得知。代码是封闭的,架构也只是厂商的一面之词。最终,用户只能选择相信服务商。

代码封闭,防线大开

近年来,宝宝监护器被黑客入侵的报道已经不少。陌生人可能偷听、操控摄像头,或通过扬声器说话。 大多数时候,这并不是什么高深攻击,而是严重的基础问题:连接未加密、使用默认密码、缺少身份验证。

对于专有软件,外部人员往往要等到出事后才会发现这些弱点。 安全研究人员、独立开发者和父母只能从外部面对一个已完成的产品。对于放在宝宝房间里的设备来说,这种模式并不可靠。

把透明度作为安全原则

信息安全领域有一条经典而实用的原则: 柯克霍夫原则。 安全性不应依赖于设计细节不被公开。即使别人知道系统的构建方式,它也应当保持安全。

代码公开并有文档说明,并不会自动让软件变得安全,但能让相关主张得到核查。 熟悉这一领域的人可以检查数据流、密钥派生方式和相关规则,而不只是阅读营销文案。

Timmy 的做法:将安全核心分离出来

在 Timmy 中,我现在会非常明确地区分哪些部分真正与安全息息相关。 并非每一行界面代码都会决定产品是否值得信任。真正关键的是后端逻辑、信令约定、配对加密,以及哪些数据会传到服务器。

因此,安全核心现已放在公开的 baby-monitor-timmy-core 仓库中。 目前完整的应用代码尚未公开。安全关键模块已从界面和产品逻辑中拆分出来,以便单独编写文档并接受审查。

具体来说,这意味着什么?

结论:父母理应获得公开透明的信息

当一款应用可以进入宝宝的房间时,它应当清楚回答几个关键问题:会产生哪些数据?数据会去哪里?谁能读取它们? 父母需要的不只是页脚里的一枚隐私徽章。

Baby Monitor Timmy 应当表明,优秀的产品与可审计的安全机制可以兼得。 对我来说,这并不意味着公开应用的每个角落,而是公开决定配对、信令、后端访问和数据流的那些部分。


更多文章