Видеонаблюдение на домашнем сервере со сквозным шифрованием - QubStore

Видеонаблюдение на домашнем сервере со сквозным шифрованием

Домашние камеры с облачной синхронизацией не раз становились источником утечек: посторонние получали доступ к видеопотоку сервисов Ring, Nest, Wyze. Сквозное шифрование от камеры до смартфона решает эту проблему.

Видеонаблюдение на домашнем сервере со сквозным шифрованием
Видеонаблюдение на домашнем сервере со сквозным шифрованием
Видеонаблюдение на домашнем сервере со сквозным шифрованием
Видеонаблюдение на домашнем сервере со сквозным шифрованием
Массовые утечки — не единственная угроза. Известны эпизоды, когда сотрудник полиции или технический специалист компании в личных целях либо за вознаграждение отслеживал перемещения конкретного человека. Без шифрования такой доступ ничем не сдерживается, а желающие заплатить за него находятся.

Ответом стала разработка энтузиастов криптографии и открытого ПО: самодельные камеры, где поток шифруется на всём пути от устройства до смартфона. Аппаратная основа — одноплатник Raspberry Pi с камерой Pi. Он поднимает защищённый канал до мобильного приложения Secluso через сервер, который работает простым ретранслятором и передаёт зашифрованные байты. В роли такого сервера выступает внешний сервер Secluso, собственный VPS или домашняя машина.

Сборка начинается с готовых комплектующих: Raspberry Pi Zero 2 W за 18 $, Pi Camera Module v2 за 25 $ либо v1 за 10 $ (подойдёт и любая камера на сенсоре OmniVision OV5647 или Sony IMX219), официальный корпус для Pi Zero за 8 $. Далее скачивается последний релиз Secluso Deploy — десктопное приложение для Windows, Linux и macOS, записывающее образ на загрузочную microSD. Программа генерирует секретный QR-код камеры и собирает персонализированный образ Secluso OS — минималистичной системы на базе проекта Yocto.

Исходники всех программ открыты на Github. Кроме iOS-приложения, всё остальное можно собрать самостоятельно и получить бинарники, аналогичные опубликованным в репозитории: Android-приложение, файлы камеры и сервера, инструмент развёртывания и саму ОС. Secluso Deploy настраивает сервер по SSH, затем Raspberry Pi загружается с подготовленной карты, а мобильное приложение подключает камеру. Оно доступно в централизованных каталогах для iOS и Android. Модель безопасности и криптографические методы, включая протокол Messaging Layer Security (MLS) и его реализацию OpenMLS на Rust, описаны в WHITE_PAPER.md и ENCRYPTION.md.

Подход Secluso принципиально расходится с Frigate или Home Assistant: те тоже предлагают локальный сервер и принимают потоки камер по локальной сети, давая похожие гарантии приватности, но приходится доверять сторонним производителям IP-камер. Зато локальный сервер умеет много интересного: обнаруживает объекты и звуки, распознаёт лица и номера автомобилей, ведёт семантический поиск по записям — как в коммерческих решениях. Правда, такие хабы обычно работают с проводными Ethernet-камерами, а RTSP-поток от WiFi-камеры остаётся незашифрованным и уязвимым для прослушивания. Это компромисс: удобство в обмен на небольшие риски от чужого оборудования и отсутствия сквозного шифрования.

Так или иначе, обработка видео на собственном сервере либо внешний ретранслятор со сквозным шифрованием — серьёзный шаг вперёд по сравнению с типовыми облачными сервисами. Самохостинг уже не требует глубоких технических знаний: сервер ставится относительно просто, после настройки достаточно подключить камеру, открыть приложение, отсканировать QR-код и выполнить сопряжение.

Ссылка на основную публикацию