¿Este sistema de autenticación es seguro para una aplicación móvil? ¿Qué puedo hacer para mejorarlo?

2

Los usuarios se autentican con su número de teléfono, obtienen un texto de pin y, si es correcto, obtienen un token de acceso. Almacene el token de acceso en una base de datos en un modelo Token . El cliente siempre envía el token de acceso en un encabezado Authorization . Para las solicitudes que requieren autenticación, analice el encabezado, verifique si está en la base de datos y extraiga el ID de usuario (también almacenado en el modelo Token ) según la fila. Suponiendo que el user_id existe y que el token está marcado como aún válido, complete la solicitud.

Todo está sobre HTTPS. Los tokens no tienen caducidad. Si no es válido, elimino el token en el cliente y luego se le pedirá al usuario que solicite otro. Los tokens son solo cadenas alfanuméricas largas y aleatorias

¿Es esto razonable? ¿Es seguro? ¿Debo usar algún paradigma preexistente?

    
pregunta mergesort 14.04.2015 - 21:52
fuente

1 respuesta

2
  

Los usuarios se autentican con su número de teléfono, obtienen un texto de pin y, si es correcto, obtienen un token de acceso.

Los números de teléfono son PII, por lo que debe mantenerlos seguros (¿encriptados?). Los mensajes de texto se envían de forma clara y se pueden leer en las aplicaciones de teléfonos inteligentes, considere eso. Además, ¿los números de pin son aleatorios o se pueden deducir fácilmente? ¿Son válidos indefinidamente?

  

El cliente siempre envía el token de acceso en un encabezado de Autorización.

Entonces, si el token es robado, ¿se puede falsificar la sesión desde otro número de teléfono?

  

Todo está sobre HTTPS.

Considera probar tus configuraciones TLS. La configuración predeterminada no es segura en la mayoría de los casos. Hay servicios en línea que te ayudan con esto.

  

Los tokens son solo cadenas alfanuméricas largas y aleatorias

¿Qué tan aleatorio, cuánto tiempo? ¿Puede la ficha ser forzada brutalmente? ¿Obstruyes los intentos de inicio de sesión después de algunos fallidos?

  

¿Es esto razonable? ¿Es seguro?

Como preguntó un comentarista, ¿cuál es su modelo de amenaza?

  

¿Debo usar algún paradigma preexistente?

Sí. No ruedes tu propio .

    
respondido por el Alasjo 14.04.2015 - 22:23
fuente

Lea otras preguntas en las etiquetas