¿Es seguro almacenar una contraseña pública encriptada en el dispositivo móvil para fines de autenticación?

1

Tengo una Apache Cordova aplicación móvil híbrida que necesita autenticar a los usuarios, pero no queremos solicitar credenciales todas las veces Se utiliza la aplicación.

Algunas opciones vinieron a mi mente:

  1. Almacene la contraseña cifrada mediante la criptografía de clave pública, de modo que solo el servidor pueda descifrarla y realizar la autenticación. Sin embargo, entiendo que es una mala práctica que, en el caso de que la contraseña se vea comprometida, todo el conjunto de aplicaciones que utilizan el SSO se vea comprometido.

  2. Utilice la autenticación basada en certificado de cliente ... ¿Tiene sentido?

¿Hay otras opciones?

    
pregunta naughtygenius 01.07.2014 - 05:50
fuente

1 respuesta

1

Deberías buscar en la autenticación basada en token. Es decir, tokens emitidos por un proveedor de identidad, que no deben confundirse con los tokens de seguridad que generalmente se usan con sistemas de autenticación multifactor.

Este método de autenticación elimina la necesidad de almacenar una contraseña en cada cliente, pero ofrece la comodidad de no tener que solicitar credenciales en cada inicio de la aplicación. Esto funciona al almacenar el token de acceso en el cliente, que se presenta al servidor en cada solicitud y expira después de un cierto tiempo (por ejemplo, 7 días).

Este enfoque es similar a la autenticación basada en cookies (como se usa con WS-Federation ), con la importante diferencia de que no es propenso a los ataques de falsificación de solicitudes entre sitios (CSRF) .

Recomiendo encarecidamente que investigue el estándar OAuth .

    
respondido por el Steven Volckaert 01.07.2014 - 08:04
fuente

Lea otras preguntas en las etiquetas