Almacenamiento de una clave secreta en Android

Mi aplicación de Android utiliza una clave secreta para generar un token con fines de autenticación. ¿Hay una forma más segura de almacenar esto que sólo poner esto en el almacén de datos? Creo que para el iPhone, lo guardamos en el llavero. Soy consciente de android.accounts.AccountManager, pero esto parece dar a otras aplicaciones potencialmente la capacidad de acceder a la contraseña (si el usuario selecciona la opción equivocada) y por lo tanto parece menos seguro.

Android (desafortunadamente) no proporciona una forma de hacerlo. El enfoque que he utilizado antes es cifrar este token con otra clave generada dentro de la aplicación.

Su clave de aplicación puede generarse algorítmicamente. Esto, sin embargo, es tan seguro como su algoritmo. Una vez que se sabe esto es equivalente a almacenar el token en texto plano.

Puede almacenar la clave en las Preferencias de su aplicación. Esto protegerá la clave de ser leída por otras aplicaciones debido a las restricciones subyacentes del sistema de archivos del sistema Android.

Pero esto no protegerá la clave de ser leído por el propio usuario.

Si puede ejecutar apk herramienta entonces su en depuración y va a la raíz del dispositivo. No hay más protección en el llavero en iOS cuando su jailbreak

Puede almacenar datos secretos cifrándolo con una clave generada por Android Keystore System y almacenando el resultado si lo desea.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.