Ответ вслух Senior Офлайн и хранение обновлено

Безопасное хранение данных на устройстве

Вопрос

Какие данные и как вы храните на устройстве с точки зрения безопасности?

Попробуйте сами

Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.

Показать ответ и разбор

Коротко

Образцовый ответ: «Исхожу из того, что всё на устройстве может быть прочитано, если устройство скомпрометировано. Поэтому токены храню только в Keychain и Keystore через защищённое хранилище, а секретов сервиса в приложении нет вообще: всё из бандла считается публичным.

Что должно прозвучать в ответе

  • Токены и ключи только в Keychain/Keystore

  • Персональные данные: минимизация, шифрование базы при необходимости (SQLCipher, шифрование MMKV)

  • Ничего секретного в бандле и `EXPO_PUBLIC_*`

  • Очистка данных при выходе из аккаунта

  • Исключение чувствительного из резервных копий и логов

  • Угрозы: рутованные устройства, резервные копии, логи, скриншоты

Что могут спросить следом

  • Как защитить экран с данными карты от скриншотов?
  • Что делать при обнаружении рута?

Разбор

Образцовый ответ: «Исхожу из того, что всё на устройстве может быть прочитано, если устройство скомпрометировано. Поэтому токены храню только в Keychain и Keystore через защищённое хранилище, а секретов сервиса в приложении нет вообще: всё из бандла считается публичным. Персональных данных храню минимум, а если их много и они чувствительные, шифрую базу, например SQLCipher, ключ в Keystore. При выходе из аккаунта стираю локальные данные и токены и отвязываю push-токен. Слежу, чтобы чувствительное не попадало в логи и аналитику. Для экранов с платёжными данными можно запретить скриншоты на Android и скрывать содержимое в переключателе приложений»

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.