¿Cuál sería la mejor manera de autenticar a un usuario en un entorno móvil multiusuario fuera de línea?

1

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?

    
pregunta Kepotx 19.04.2018 - 12:10
fuente

1 respuesta

1

Bueno, solo puede invalidar el token y eliminarlo cada vez que quiera cambiar de usuario o, de lo contrario, "desconectarse" del usuario, luego usar la autenticación en línea con la verificación de la contraseña en línea.

La única forma de proteger de forma fiable un token de un ataque fuera de línea (por lo que puedo decir) es cifrarlo, lo que requeriría una contraseña o pin. Debe usar una función de derivación de contraseña lenta con suficientes iteraciones, como PBKDF2 para ayudar un poco con la entropía.

    
respondido por el Peter Harmann 19.04.2018 - 21:41
fuente

Lea otras preguntas en las etiquetas