Как мы внедряли полноценный TLS в IP-камеры: заметки инженера
Я занимаюсь разработкой сетевой части прошивок камер «Рувер». И, если совсем прямо, сегодня защищенное видеонаблюдение — одна из самых больных тем в отрасли. Видеокамеры стоят почти везде: бизнес-центры, ТЦ, складские комплексы, промышленные площадки, критическая инфраструктура. Но то, что происходит после того, как картинка покидает камеру, зачастую мало кто контролирует.
Где уязвимость
Большинство IP-камер в России подключены:
- к общим локальным сетям вместе с офисными компьютерами,
- к корпоративному Wi-Fi,
- через сети операторов,
- или «просто через интернет», чтобы был удалённый доступ.
И если видеопоток передается без шифрования — его можно спокойно перехватить. Не нужен ни серверный шкаф, ни спецоборудование. Достаточно Wireshark и доступа в ту же сеть. И это не страшилка, это обычный рабочий кейс, с которым мы сталкивались у заказчиков.
Что мы сделали
Я с коллегами реализовали полноценную поддержку TLS (Transport Layer Security) в прошивке камер «Рувер». Ключевое — данные шифруются прямо в камере, до передачи в сеть:
На практике это дает:
- Подслушать поток невозможно — перехватчик увидит только шифртекст.
- Подменить камеру не получится — используется проверка сертификатов.
- Перехват или модификация команд управления не сработает.
Важно: это не «галочка в спецификации». TLS у нас — часть сетевого стека, а не внешняя библиотека, прикрученная «сверху».
Почему так вообще пришлось делать
Мы работаем для российских сетей. А это нестабильные каналы, VPN внутри VPN, NAT поверх NAT, отсутствие прямой адресации.
Условно: идеальных сетей не бывает. Поэтому реализация должна не «пассовать» при задержках и потерях, а работать на реальном объекте. Мы можем себе это позволить, потому что контролируем весь стек: от прошивки до архитектуры камеры. Никакой зависимости от чужих SDK, которые могут исчезнуть в любой момент.
Это важно там, где:
- объект относится к КИИ,
- есть удалённые или «грязные» сетевые сегменты,
- используются облачные или гибридные VMS,
- сеть никто не может гарантировать как доверенную.
Если в сети есть хотя бы один участок, где могут присутствовать третьи лица — камера обязана шифровать поток.
Зачем я всё это пишу
Потому что безопасность — это не про «поставили камеру — всё защищено». Безопасность — это про архитектуру, про то, где и как данные живут по пути от матрицы до рабочего места оператора. Мы сделали так, чтобы точка входа (камера) была защищенной сама по себе. Не «надеясь на сеть». Не «надеясь на фаервол». Не «надеясь на удачу».