¿Cuáles son las ventajas / desventajas del hash sobre el cifrado?

-1

Sé que el hashing es una función de una sola vía y que los mensajes cifrados se pueden recuperar si conoce la clave correspondiente a la que cifró el mensaje. Aparte de la capacidad de recuperación, ¿qué ventajas / desventajas hay en el hash sobre el cifrado?

    
pregunta user3023315 03.06.2014 - 16:45
fuente

4 respuestas

2

Como se ha mencionado, el hash y el cifrado sirven para diferentes propósitos, por lo que esta pregunta se explicaría mejor teniendo en cuenta una aplicación. Para un ejemplo de la vida real que se usa comúnmente, un desarrollador de sitios web puede preguntar: "Estoy creando un sitio web donde los usuarios necesitan un nombre de usuario y una contraseña para iniciar sesión. Si debo almacenar las contraseñas en texto sin formato en alguna parte, debo cifrarlas o debo Los tengo? " La respuesta a esta pregunta dependerá de para qué es el sitio web y quiénes son los usuarios, pero generalmente es así:

  1. Contraseñas de texto simple: esto generalmente se debe evitar, excepto en los sitios de seguridad extremadamente bajos donde las contraseñas se generan automáticamente. Si a los usuarios se les permite crear sus propias contraseñas, casi nunca debe guardarlas en texto sin formato, ya que algunos usuarios inevitablemente usarán la misma contraseña para este sitio como lo harían con los sitios con alto nivel de acceso. seguridad, por ejemplo, sus cuentas bancarias u otras cuentas de correo electrónico a las que se enviarían los correos de restablecimiento de contraseña de la cuenta bancaria.

  2. Cifre las contraseñas: esto es MUCHO mejor que las contraseñas de texto simple, sin embargo, alguien siempre tendrá la capacidad de descifrar las contraseñas. Esto se debe a que para que el servidor web autentique las contraseñas, debe poder descifrar las contraseñas, lo que significa que la clave de descifrado debe estar almacenada en algún lugar al que pueda acceder el servidor. En consecuencia, cualquier persona con acceso al servidor también podrá descifrar las contraseñas. Esa persona normalmente puede ser el desarrollador web o un administrador de TI de confianza, pero generalmente es mejor no tener a nadie que pueda descifrar las contraseñas. Además, si el servidor está comprometido de alguna manera, el pirata informático puede descifrar la contraseña de todos.

  3. Hashing the Passwords: este suele ser el mejor método, ya que incluso si el servidor está comprometido, las contraseñas aún están protegidas (dentro de lo razonable). La principal desventaja de esto es que no es posible recuperar una contraseña; solo puedes restablecer tu contraseña.

Moraleja: si su banco tiene un mecanismo de recuperación de "Contraseña olvidada" en su sitio web, y le envían por correo electrónico la contraseña que olvidó en lugar de restablecerla, debe cambiar de banco.

    
respondido por el TTT 03.06.2014 - 18:28
fuente
0

No hay ninguna ventaja, tienen propósitos diferentes como dijo Terry Chia.

En "iniciar sesión en sistemas" usted quiere asegurarse de que si alguien logra "robar" su base de datos, el atacante no podrá leer la contraseña, sino solo el hash de la contraseña, ya que muchos usuarios usan las mismas contraseñas para muchos sitios diferentes Entonces, si un atacante lograba descifrar la base de datos de stackexchange, podría usar la misma contraseña para enviar por correo electrónico, ebanking, etc.

Imagine el escenario en el que lo que desea es asegurarse de que un mensaje cuando se transmite desde un remitente X a un receptor Y, se reciba correctamente y el receptor Y pueda verificar que se recibió correctamente y ninguno alteró el mensaje. una clave para la función hash.
No le importa si un atacante lee su mensaje. Entonces, simplemente envíe el texto claro, con un hash de ese texto claro, luego el receptor enviará el texto claro recibido con la misma clave y, si los dos hashes son los mismos, podrá verificar que, el mensaje recibido no fue alterado.
Lo único que le importa es que su receptor pueda verificar que lo envió usted.

    
respondido por el user46850 03.06.2014 - 16:58
fuente
0

Si quiere pensarlo en términos más simples: Hashing es como hacer coincidir una huella dactilar, mientras que cifrarlo es mezclar el mensaje. Use el hashing para determinar si el mensaje / archivo es auténtico. Utilice el cifrado para proteger / ocultar el contenido.

    
respondido por el user47526 03.06.2014 - 17:55
fuente
0

La elaboración de las funciones sirve a ambos:

Hashing es, como dijiste, no reversible. También es constante. Por eso lo usamos para almacenar contraseñas. Cuando establece su contraseña para, digamos, su correo electrónico, el servidor nunca la almacena (bueno, algunos lo hacen, pero merecen un cierto grado de vergüenza pública). En cambio, (asumiendo que su contraseña es "contraseña") almacenan h ("contraseña") . Ahora digamos que desea iniciar sesión. Aquí es donde entra en juego el cifrado . Usted y el servidor van a través de algo llamado intercambio de claves Diffie-Helfman, que le permite intercambiar una clave con el servidor. Ahora usa esa clave para cifrar su contraseña ( x = e ("contraseña") ) y enviarla al servidor. El servidor, ya que tiene la misma clave que usó para cifrar su contraseña, puede realizar la función e ^ -1 (x) . Ahora tiene el texto plano de su contraseña. Si estuviéramos hablando de Heartbleed, este es el punto más probable para que le roben su contraseña. De todos modos, ahora el servidor realiza la función h ("contraseña") y la compara con el hash de contraseña almacenado que tiene asociado con su nombre de usuario. Si el hash que generaron a partir del valor que les envió coincide con el que tienen, le permitirán acceder a su cuenta.

    
respondido por el KnightOfNi 03.06.2014 - 18:20
fuente

Lea otras preguntas en las etiquetas