¿Es útil hash la contraseña antes de enviarla al servidor para la autenticación? [duplicar]

-2

En el diseño de una base de datos de back-end, el campo de la contraseña se supone que se debe marcar con bcrypt.

Hay dos enfoques

  • sólo backend: password = bcrypt (plain_passsword)
  • frontend + backend = password = bcrypt (sha1 (plain_password)), donde sha1 (plain_password) se calcula desde el lado del cliente, por ejemplo, JavaScript

La ventaja del segundo enfoque es que no se envía una contraseña simple a través del cable, por lo que incluso el HTTPS no funciona, no existe un riesgo de seguridad inmediato para nuestros usuarios que filtraron su contraseña simple.

Editar: mi pregunta es diferente de las preguntas existentes, ya que enfatizan en frontend vs backend, pero mi pregunta es backend vs frontend + backend

    
pregunta Ryan 16.08.2017 - 05:31
fuente

3 respuestas

1

No hay mucha diferencia en sus dos soluciones: en esencia, simplemente está enviando la contraseña en texto sin formato a través del cable con el que va. La segunda solución solo protegerá otras cuentas para las que los usuarios han usado la misma contraseña pero no tendrán ningún efecto en su sitio.

    
respondido por el Dam30n 16.08.2017 - 09:25
fuente
1

Hay dos problemas que se mezclan en tus preguntas:

  • Fuga de contraseña de usuario
  • Poder autenticarse contra una aplicación de su sistema

Básicamente, el SHA-1 (o mejor SHA-2 pero aniway) ocultará la contraseña de texto simple a cualquier persona. Tan bien no filtrará la contraseña del usuario que resuelve mi primera bala, aunque es más el objetivo de HTTPS hacer eso.

Sin embargo, para la segunda viñeta, no agrega nada, ya que un atacante solo tendrá que enviar la contraseña con hash SHA-1 contra sus aplicaciones para poder autenticarse, ya que un pirata informático no necesita una clave específica. contraseña de texto, necesita lo que el servidor aceptará .

    
respondido por el Walfrat 16.08.2017 - 09:36
fuente
0

Recibo tu idea, hash dos veces para intentar obtener ambos beneficios. Pero si envía el hash SHA1 al servidor para la autenticación, ahora es la contraseña de texto sin formato para su aplicación .

Por lo que respecta a la seguridad, no hay ventajas, excepto la protección de las otras cuentas por las que el usuario podría haber reutilizado su contraseña. No agrega nada a la seguridad de su aplicación.

    
respondido por el J.A.K. 16.08.2017 - 12:39
fuente

Lea otras preguntas en las etiquetas