@Krokochik

Где хранить токен доступа в android?

У меня есть android приложение, которое при первом открытии после сканирования qr кода получает от сервера токен. Где/как можно сохранить этот токен, чтобы не утруждать пользователя при каждом открытии вводом мастер-пароля, а, например, использовать биометрическую аутентификацию?
P.S. я знаю о существовании AccountManager и SharedPref, но они не шифруют данные и к ним можно получить доступ свободно на устройстве с root. Мне надо сохранить токен максимально безопасно, потому что с помощью него с сервера можно получить важные данные
  • Вопрос задан
  • 272 просмотра
Решения вопроса 1
Как бы ты не зашифровал пароль, для использования тебе придется его как-то расшифровать. А если твоё приложение может расшифровать автоматически, значит и кто угодно с root доступом к устройству это сделает.

Тебе нужно найти правильный баланс между удобством и безопасностью. Невозможно предоставить удобство (отсутствие необходимости ввода пароля) и максимальную непробиваемую безопасность одновременно. Нужны компромиссы и понимание, насколько вероятно, что нечто получит рут доступ к системе и утащит пароль с устройства (подсказка: это крайне маловероятно)

Хранить секреты в SharedPref с MODE_PRIVATE вполне нормальная практика.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Steel_Balls
@Steel_Balls
SharedPreferences шифрует в режиме PRIVATE_MODE.
Ещё можно использовать SqlCipher.
И нужно понимать, что мобильное приложение - это фронтэнд, а значит код приложения можно декомпилировать через реверс-инжиниринг.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы