在树莓派上构建私有监控摄像头,无需云服务和订阅
购买现成的智能家居摄像头通常意味着妥协。一方面,在手机上打开应用查看房间情况确实很方便。但另一方面,你客厅或走廊的视频流直接传送到别人的服务器——亚马逊、谷歌或不知名的中国厂商。再加上时不时曝出的数据泄露新闻、付费订阅存储服务,以及厂商可能某天直接关停服务器的风险。
最近我发现了一个有趣的项目叫做Secluso,它试图以正确的方式解决这个问题。这是一个面向树莓派微型计算机的家庭视频监控系统,采用真正的端到端加密(E2EE),甚至中间的数据中继服务器也遵循零信任原则运行。
项目背景与核心理念
该项目由加州大学欧文分校专注于计算机安全的教授Ardalan Amiri Sani和工程师John Kachman开发。secluso/core代码库采用Rust编写。
作者的核心思想很简单。用户应该获得一个能在五分钟内配置完毕的现成解决方案,同时保证加密隔离,防范窥探。没有封闭的云服务。视频在树莓派主板上加密,仅在你的智能手机上解密。
架构工作原理
大多数DIY视频监控解决方案(如MotionEye或ZoneMinder)在远程访问方面往往力不从心。如果你想在家庭Wi-Fi网络之外观看视频流,就必须处理静态IP地址、动态DNS、端口转发或配置家庭网关等问题。
Secluso采用了不同的解决方式:
- 摄像头和手机通过中间中继进行通信。
- 任何经济实惠的Linux VPS都可以作为中继服务器。
- 中继服务器是隔离的,无法访问加密密钥。它盲目转发流量,只能看到加密的数据包。
所有加密设计都基于威胁建模。协议实现了前向保密性和对未来密钥泄露的保护。如果有人获得了你的VPS中继的访问权限,他们只能看到加密的二进制流,无法解密存档录像或实时视频。
另一个有趣的点是可重现构建(Reproducible Builds)。开发者确保运行时二进制文件、部署工具、自定义Secluso OS镜像和Android应用都可以从源码编译,并与官方发布版本进行字节级验证。对于注重隐私的项目来说,这种做法值得尊敬。
硬件需求
入门所需的组件列表很简单:
- 树莓派Zero 2W主板。
- 树莓派摄像头模块V1、V2,或任何基于索尼IMX219/OmniVision OV5647传感器的模块。
- 用于写入镜像的MicroSD卡。
- 自己的Linux VPS(需SSH访问权限)用于中继(测试时,作者提供其服务器的临时试用访问)。
- iOS或Android智能手机。
搭建过程与使用体验
通常,在Pi上搭建这样的系统会陷入无尽的配置调整、摄像头驱动安装和systemd折腾。Secluso团队编写了一个独立的桌面工具Secluso Deploy来消除这些繁琐步骤。
整个过程如下:
- 下载Secluso Deploy到你的电脑。
- 程序在你的机器上生成唯一的加密密钥,并将其刷入Secluso OS镜像。
- 该工具通过SSH连接到你的VPS,自动部署中继服务器组件。
- 将准备好的镜像写入U盘,插入Pi Zero 2W,然后通电。
- 从App Store或Google Play下载官方应用,扫描Deploy生成的配对二维码。
之后,你的手机就会连接到摄像头。通过移动客户端,你可以访问实时视频流、事件通知以及已保存的加密录像片段。
适用人群
Secluso非常适合以下用户:
- 想要监控自己的公寓、工作室或乡间别墅,但不想将个人空间托付给第三方服务。
- 手边有一个积灰的树莓派Zero 2W想派上用场。
- 想深入了解Rust中端到端加密视频流的架构以及零信任中继原理。
该项目仍在发展中,目前支持的摄像头传感器仅限于常见的Pi模块,但核心功能运行可靠。如果你厌倦了封闭生态系统和为每GB视频存档付费订阅,secluso/core绝对值得一试。源代码采用GPLv3许可证开放,加密模型的文档就在代码库中。
相关项目