AES-GCM в детском приложении: замена AI для безопасности данных

Что изменилось: отказ от AI и внедрение шифрования

Вчера в офисе маленькой команды, разрабатывающей семейное приложение MIO, мы собрались вокруг экрана, чтобы обсудить очередной фича‑пакет. Родитель, открыв приложение, видит список задач и баланс монеток. Вместо того, чтобы каждый раз нажимать кнопку «Проверить» и ждать ответа от облачной модели, он видит простую кнопку «Подтвердить» и мгновенно получает подтверждение.
Мы решили, что в каждом элементе UI не будет «умного» поведения. Вместо этого мы полностью зашифровали данные на устройстве, используя алгоритм AES‑GCM, и оставили AI только там, где это действительно нужно – например, при генерации голосовых подсказок.
Практический результат: пользователь больше не рискует, что его личные данные попадут в облако, а команда разработки избавилась от необходимости поддерживать сложные модели и их обновления.

Источник: Habr

Почему это важно для родителей и разработчиков

Для родителей приложение должно быть надёжным и простым. Если данные о выполнении задач хранятся в открытом виде, любой, кто получит доступ к устройству, может увидеть, какие привычки формирует ребёнок. Это особенно чувствительно, когда речь идёт о детях.
Для разработчиков – отказ от «AI‑в‑каждой‑кнопке» снижает техническую сложность и расходы. Не нужно обучать модели, хранить большие датасеты и платить за облачные вычисления. Вместо этого можно сосредоточиться на тестировании и поддержке уже существующего кода.

Как работает MIO без AI: простые задачи и магазин

Приложение MIO – это «детский тамагочи» с элементами привычек. Родитель создаёт шаблоны задач: «Помыть зубы», «Сделать домашнее задание» и т.д. Для каждой задачи задаётся награда – монета, которую ребёнок может потратить в виртуальном магазине.
Внутренний кошелёк ребёнка хранит только количество монеток. При старше 7 лет родитель может включить валюту (рубли, доллары, евро), но это делается только после проверки, что ребёнок понимает понятие денег. Всё взаимодействие – простое действие‑проверка‑награда, без лишних «умных» подсказок.

Как мы реализовали безопасность: AES‑GCM и CryptoKit

Для защиты данных мы использовали встроенный в iOS CryptoKit алгоритм AES‑GCM. Он обеспечивает шифрование «от конца до конца» – от ввода пользователем до сохранения в локальной базе данных.
Преимущества: - Надёжность – AES‑GCM считается стандартом индустрии для шифрования. - Производительность – шифрование выполняется быстро, не замедляя работу приложения. - Простота – в коде всего несколько строк, без сторонних библиотек.

Мы не использовали сторонние сервисы для шифрования, чтобы избежать зависимости от внешних провайдеров и потенциальных юридических рисков.

Что стоит проверить перед внедрением

Что проверить Как проверить Кто отвечает
Корректность шифрования Запустить юнит‑тесты, проверяющие, что данные расшифровываются правильно Тестировщик
Производительность Измерить время шифрования/дешифрования при больших объёмах Инженер
Совместимость с iOS Проверить работу на разных версиях ОС Разработчик
Уровень безопасности Попросить независимого эксперта провести аудит Руководитель
Легальность хранения Убедиться, что шифрование соответствует требованиям РФ Юрист

Эти проверки можно выполнить за несколько дней, не требуя масштабных изменений в инфраструктуре.

Как использовать AI осознанно в будущем

AI может быть полезен, но только там, где он действительно добавляет ценность. В MIO мы оставили AI только для голосовых подсказок и озвучивания задач. Это позволяет: - Сократить нагрузку на серверы (модель запускается локально). - Сохранить контроль над тем, какие данные отправляются в облако. - Предоставить ребёнку «живое» взаимодействие без лишних «умных» кнопок.

Если в будущем понадобится добавить более сложный AI‑функционал, сначала оцените: 1. Необходимость – действительно ли это решает проблему пользователя. 2. Безопасность – какие данные будут передаваться. 3. Стоимость – расходы на обучение и хостинг модели.

Что может пойти не так и как избежать

Возможная проблема Как избежать
Неправильная реализация шифрования Проводить ревью кода и тесты
Перегрузка устройства при шифровании Оптимизировать алгоритм, использовать асинхронность
Неправильное хранение ключей Хранить ключи в защищённом хранилище (Keychain)
Необоснованный ввод AI Ограничить AI только проверенными сценариями

Что делать дальше: чеклист и рекомендации

  1. Проверить наличие всех ключей в Keychain и их корректность.
  2. Запустить тесты шифрования/дешифрования на реальных данных.
  3. Проверить производительность на целевых устройствах.
  4. Обсудить с юристом вопросы хранения и обработки персональных данных.
  5. Определить, какие AI‑функции можно добавить без риска, и задокументировать их.

Если все пункты пройдены, можно запустить обновление в TestFlight и собрать отзывы от родителей.

Дополнительные рекомендации по внедрению шифрования

При внедрении AES‑GCM в детское приложение важно учитывать несколько ключевых аспектов. Во‑первых, необходимо обеспечить правильное управление ключами шифрования – они должны генерироваться на устройстве и храниться исключительно в Keychain. Во‑вторых, стоит предусмотреть механизм восстановления доступа в случае потери устройства или сброса настроек. Для этого можно использовать iCloud Keychain или резервное копирование ключей с согласия родителя. В‑третьих, важно регулярно обновлять библиотеки безопасности и следить за выходом патчей для CryptoKit. Наконец, рекомендуется проводить нагрузочное тестирование шифрования на старых устройствах, чтобы убедиться, что производительность остаётся приемлемой для пользователей. Дополнительно стоит документировать все этапы внедрения шифрования и проводить регулярные аудиты безопасности, чтобы своевременно выявлять и устранять потенциальные уязвимости.

Источники


Статья подготовлена редакцией ONFF. Если у вас есть вопросы или предложения, пишите нам на почту.

Что почитать дальше