¿Cómo transferir las contraseñas entre el cliente y el servidor de una manera más segura?

-3

Estoy creando una aplicación móvil que interactúa con un servidor. Quiero encontrar una manera de transferir contraseñas de forma segura. Si envío las contraseñas en texto sin formato o en forma de hash, se pueden rastrear. ¿Cómo enviar contraseñas de manera más segura desde el cliente al servidor?

    
pregunta Yossef Nagy 25.06.2018 - 10:24
fuente

2 respuestas

3

Use HTTPS, o cualquier otra forma de conexión TLS.

HTTPS proporciona cifrado y autenticación, y necesita ambos para una conexión segura. Hace imposible oler cualquier cosa en la conexión.

    
respondido por el Sjoerd 25.06.2018 - 10:40
fuente
1

Para mantener las contraseñas lo más seguras posible, incluso si su servidor está integrado (incluso si uno de los administradores actúa como atacante), use un protocolo que no transfiera la contraseña del usuario y que ni siquiera transfiera un hash del Contraseña en el tiempo de autenticación del usuario.

Esto es posible con el protocolo de contraseña remota segura (SRP): enlace

Con este protocolo SRP, un intercambio de 2 números aleatorios (1 enviado del usuario al servidor y 1 enviado del servidor al usuario) es suficiente para autenticar al usuario (como el propietario de la contraseña) y establecer un canal seguro (como lo hace SSL / TLS). Por supuesto, estos 2 números aleatorios contienen cierta información de autenticación, pero esta información se mezcla con números aleatorios de tal manera que, para un cuentagotas, los 2 números intercambiados son exactamente 2 números aleatorios. Consulte RFC 2945 o el documento original de Tom Wu, y la actualización SRP-6 de Tom Wu.

No es necesario transferir un hash ("verificador") una vez, a la hora de configurar la contraseña, para poder almacenarlo en el servidor. (Por supuesto, podría convertirse en el objetivo de un ataque de fuerza bruta). Después de eso, solo se intercambian números aleatorios para la autenticación, sin revelar nada más sobre la contraseña del usuario (y evitar un ataque de repetición).

    
respondido por el JPB 25.06.2018 - 15:00
fuente

Lea otras preguntas en las etiquetas