Actualmente estoy trabajando en un sistema de autenticación sin conexión para un entorno móvil multiusuario.
Para evitar almacenar todas las contraseñas localmente, lo que parece ser una mala idea, procedo de esta manera:
Se requiere una primera autenticación en línea. Luego, el servidor devuelve un token al usuario, que se utilizará para realizar futuras llamadas a la API.
Para tener varios usuarios en el mismo dispositivo móvil / tableta, necesito una forma de almacenar varios tokens y solo permitir el acceso a un usuario en particular.
dos soluciones vienen a mi mente:
- contraseña clásica, con el riesgo de que el usuario ingrese la misma contraseña que su "contraseña principal"
- código PIN o código similar, sin relación con la "contraseña principal" pero con menos entropía
La autenticación de huellas digitales también sería una solución, pero no todos los dispositivos admiten la detección de huellas digitales.
Ambos casos tienen inconvenientes y ambos son débiles, ya que son vulnerables al ataque sin conexión
¿Cuál sería la mejor manera de autenticar a un usuario en un entorno móvil multiusuario fuera de línea?