Блог

Чому застосункам-радіоняням потрібне ядро безпеки, яке можна перевірити

Для радіоняні недостатньо просто відчувати спокій. Критично важливі частини мають бути доступними для перевірки.

Проблема: сліпа довіра

Коли ви встановлюєте застосунок, що працює як радіоняня, ви відкриваєте йому доступ до дуже приватного місця — кімнати вашого малюка. Застосунок слухає, а іноді й спостерігає. Водночас батьки часто не бачать, що відбувається у фоновому режимі: чи проходять трансляції через сервери сторонніх компаній, чи збираються дані про використання та хто технічно має до всього цього доступ?

Чесна відповідь: у випадку багатьох застосунків ви цього не знаєте. Код закритий, а опис архітектури залишається лише заявою. Зрештою вам пропонують просто повірити постачальнику.

Закритий код, відкриті вразливості

За останні роки було достатньо повідомлень про зламані радіоняні. Сторонні люди могли підслуховувати, керувати камерами або говорити через динаміки. Найчастіше це були не складні атаки, а серйозні помилки: незашифровані з’єднання, паролі за замовчуванням, відсутність автентифікації.

У пропрієтарному програмному забезпеченні такі слабкі місця часто стають помітними ззовні лише після інциденту. Дослідники безпеки, незалежні розробники та батьки можуть оцінювати готовий продукт лише ззовні. Для пристрою в дитячій кімнаті це ненадійна модель.

Прозорість як принцип безпеки

В інформаційній безпеці є давнє й корисне правило: принцип Керкгоффса. Безпека не повинна залежати від того, що принцип роботи системи тримають у таємниці. Система має залишатися безпечною, навіть якщо хтось знає, як вона побудована.

Те, що код відкрито задокументований, саме по собі не робить програмне забезпечення безпечним. Проте це дає змогу перевіряти заяви. Фахівці можуть аналізувати потоки даних, формування ключів і правила роботи системи, а не лише читати маркетингові тексти.

Підхід Timmy: окреме ядро безпеки

У Timmy я тепер дуже чітко відокремлюю справді критичні для безпеки компоненти. Не кожен рядок інтерфейсу визначає, чи заслуговує продукт на довіру. Вирішальними є логіка серверної частини, правила сигнального обміну, криптографія сполучення та те, які дані потрапляють на сервер.

Саме тому ядро безпеки тепер розміщене у публічному репозиторії baby-monitor-timmy-core. Повний код застосунку наразі не є публічним. Критично важливі для безпеки компоненти винесені з інтерфейсу та логіки продукту, щоб їх можна було окремо документувати й перевіряти.

Що це означає на практиці?

Висновок: батьки заслуговують на прозорість

Якщо застосунок має доступ до дитячої кімнати, має бути чітко вказано: які дані створюються? Куди вони надходять? Хто може їх прочитати? Батьки заслуговують на більше, ніж значок конфіденційності внизу сторінки.

Baby Monitor Timmy має показати, що якісний продукт і безпека, яку можна перевірити, можуть поєднуватися. Для мене це не означає робити публічним кожен куточок застосунку. Це означає відкрити компоненти, які визначають сполучення, сигнальний обмін, доступ до серверної частини та потоки даних.


Більше статей