Almacenamiento del token de autenticación en un dispositivo Android

5

Mi servidor me está enviando acceso y un token de actualización al iniciar sesión. ¿Debo guardarlos en las preferencias compartidas de Android cifrándolos? Quiero saber cuál es la mejor práctica para almacenar estos tokens, ya que almacenarlos directamente en las preferencias es fácil de hackear.

    
pregunta Shubham 23.10.2017 - 07:14
fuente

1 respuesta

2

Android admite el hermoso concepto de Sandbox de aplicaciones , de modo que todas las aplicaciones se ejecutan como un usuario único y en su propia sandbox. El almacenamiento de datos local en un dispositivo no rooteado para aplicaciones no depurables normalmente no es accesible. Sin embargo, si el dispositivo está rooteado, el concepto de sandbox de la aplicación se colapsa y la aplicación instalada puede ejecutarse como un usuario "root" y, por lo tanto, acceder a los datos almacenados por cualquier otra aplicación en su directorio privado (/ data / data / package- nombre)

El almacenamiento del token como texto sin formato en el almacenamiento de datos local (SharedPreferences) no es una opción segura, ya que se puede acceder fácilmente a la misma desde un dispositivo no rooteado. Se recomienda que el token se cifre utilizando un algoritmo de cifrado seguro y una implementación segura en el almacenamiento de datos local.

  1. Use un algoritmo de cifrado seguro como AES-GCM-256 o ChaCha20-Poly1305 etc.
  2. Use PBKDF2 para la derivación de claves.
  3. Si es necesario, almacene la clave de cifrado en los almacenes de claves de Android.
respondido por el Shiv Sahni 20.02.2018 - 10:43
fuente

Lea otras preguntas en las etiquetas