Pasar un hash de un secreto a un servidor en lugar del texto simple

1

En lugar de pasar un token de autenticación o una clave api en un encabezado http a un servidor en texto sin formato, ¿qué sucede si calculé su hash y pasé el hash? De esta manera, incluso si un adversario intercepta el hash, será inútil para ellos. Y un servidor también puede calcular fácilmente un hash de la contraseña real en su lado y luego verificar si coinciden. También se puede agregar una sal.

¿Funcionará? ¿Se utiliza ampliamente este enfoque?

    
pregunta アレックス 09.04.2016 - 03:48
fuente

1 respuesta

1

No, este enfoque no se usa ampliamente y, por lo tanto, aquí se explica:

  1. Si el cliente escribe la contraseña y la envía al servidor, ¿ese hash no se convierte en "la contraseña"? Como atacante, ¿no puedo simplemente interceptar el hash y usarlo en un ataque de repetición?

  2. Usted dijo "También se puede agregar una sal". Este realmente se realiza en algunos protocolos, cuando se agrega un valor aleatorio para hacer que el hash sea diferente cada vez, se denomina nonce .

  3. Lo más importante, ¿el servidor conoce la contraseña de texto simple? ¡Mala idea! Si su servidor conoce la contraseña de texto sin formato, eso significa que está almacenando las planicies en una base de datos, lo que significa que una brecha en la base de datos pierde toda la contraseña de texto simple de sus usuarios. Sólo el almacenamiento de hashes de contraseñas en la db lo protege contra esto. ¿Está realmente dispuesto a arriesgar una violación total y completa para simplificar un poco su protocolo?

Conclusión: estoy contento de que esté pensando en el diseño de protocolos desde una perspectiva de seguridad. Le animo a que eche un vistazo a la protocolo de enlace TLS porque es un protocolo muy bien pensado que utiliza muchos de los conceptos en los que estás pensando.

    
respondido por el Mike Ounsworth 09.04.2016 - 04:29
fuente

Lea otras preguntas en las etiquetas