Хранение секретного ключа на Android
В моем приложении Android используется секретный ключ для генерации токена для целей аутентификации. Есть ли более безопасный способ сохранить это, чем просто поместить это в хранилище данных? Я думаю, что для iPhone мы храним его в цепочке ключей. Мне известно о android.accounts.AccountManager, но это, похоже, дает другим приложениям возможность доступа к паролю (если пользователь выбирает неправильный вариант) и поэтому кажется менее безопасным.
Ответы
Ответ 1
Android (к сожалению) не дает возможности сделать это. Подход, который я использовал ранее, - это зашифровать этот токен другим ключом, сгенерированным в приложении.
Ваш ключ приложения может быть сгенерирован алгоритмом. Это, однако, настолько же безопасно, как и ваш алгоритм. Как только это известно, это эквивалентно сохранению токена в виде обычного текста.
Ответ 2
Вы можете сохранить ключ в настройках своего приложения. Это защитит ключ от чтения другими приложениями из-за ограничений файловой системы в системе Android.
Но это не защитит ключ от чтения самим пользователем.
Ответ 3
если вы можете запустить apk tool, а затем отладить его, и вы собираетесь запустить его. Нет никакой защиты на брелках в iOS, когда его джейлбрейк
Ответ 4
Вы можете хранить секретные данные, зашифровав его ключом, сгенерированным Android Keystore System, а затем сохраняя результат независимо от того, хотите ли вы.