Где / как хранить конфиденциальную информацию? - PullRequest
0 голосов
/ 28 мая 2019

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

Я знаю, что это очень-очень-очень плохая практика, так как сервер, которым я пользуюсь, не управляет каким-либо токеном или чем-то подобным, у меня нет другого выбора.

Я прочитал много документации и статей на эту тему, но не могу решить, как мне хранить эту конфиденциальную информацию.

У меня есть 3 возможности:

  1. с использованием системы Android AccountManager
  2. с использованием системы Android Keystore
  3. с использованием нового компонента безопасности Jetpack

Система AccountManager - не лучший способ, потому что, как сказано в документации:

Важно понимать, что AccountManager не является сервисом шифрования или связкой ключей. Он хранит учетные данные, как вы передаете их, в виде простого текста. На большинстве устройств это не вызывает особого беспокойства, поскольку он хранит их в базе данных, доступной только для пользователя root. Но на рутованном устройстве учетные данные будут доступны для чтения любому пользователю, имеющему доступ к устройству с помощью adb.

Поэтому я хотел бы хранить эту конфиденциальную информацию с помощью системы Keystore или нового компонента безопасности Jetpack. Но, честно говоря, я не эксперт по безопасности, и я не уверен, что пойму, какой путь более безопасен.

Новый компонент безопасности Jetpack выглядит таким простым в использовании, согласно документу .

Считаете ли вы, что этот новый компонент менее безопасен, чем система Keystore?

Заранее благодарю за помощь!

...