¿Es fácil descifrar BCRYPT?

1

Sé que bcrypt no se cifra, pero ¿qué tan fácil sería obtener la contraseña de un hash bcrypt almacenado?

Quiero dividir mi pregunta sobre bcrypt en 2:

  1. Leí aquí que bcrypt genera aleatoriamente Sales para cada hash que hace. ¿Cómo pueden dos "acciones de hashing" diferentes con el mismo número de rondas y la misma contraseña tener el mismo resultado si bcrypt genera un salt aleatorio cada vez que hash algo?

  2. BCRYPT guarda el hash de salida, la sal y el número de rondas con el tipo de versión de algoritmo. La salida sería algo como esto:

$ 2a $ 10 $ vI8aWBnW3fID.ZQ4 / zo1G.q1lRps.9cGLcZEiGDMVr5yUP1KUOYTa

Básicamente tienes todo lo que necesita el algoritmo, excepto la entrada, pero para eso tienes la salida. ¿No haría eso bastante fácil descifrar / deshacer la contraseña a su estado original?

    
pregunta Akise Aru 14.05.2017 - 16:45
fuente

1 respuesta

2

Bcrypt como cualquier otro método hash con sal, usa la sal para evitar que la misma contraseña incluya en la misma cadena. Lo está haciendo al generar inicialmente la sal de forma aleatoria y luego aplicar la contraseña y la sal. Esto solo se puede verificar si se usa la misma sal al verificar. Es por esto que la sal se guarda junto con el hash.

Bcrypt como cualquier otro método hash iterado no se puede invertir directamente, pero puede probar todas las contraseñas posibles para ver si contienen el mismo resultado. En el caso de los métodos con sal, no puede calcular esto porque tiene que probar con la sal real (como se describe anteriormente).

La idea de un hash iterado y salado es que esta fuerza bruta es tan lenta que demora mucho en probar todas las contraseñas posibles. Por lo tanto, las contraseñas largas y complejas razonables no pueden forzarse bruscamente rápidamente. Bcrypt es uno de los métodos (con factor de trabajo configurable) más lento y, por lo tanto, mejor (pero no es invencible). Esto se aplica a todos los métodos de hash de contraseñas (a menos que utilicen protección adicional como el cifrado con una clave segura 'pepper' que no se puede extraer del servidor de autenticación).

NB: Scrypt y Argon2 son variantes más modernas del hashing de contraseñas. Y PBKDF2 tiene una fuerza similar a Bcrypt pero con un mejor factor de mierda de cumplimiento.

    
respondido por el eckes 14.05.2017 - 16:52
fuente

Lea otras preguntas en las etiquetas