¿Es adecuado bcrypt para uso moderno? [duplicar]

1

Cuando aparece el tema del hashing de contraseñas, muchos desarrolladores se exasperan con las personas que usan esquemas de hashing obsoletos, rotos o hechos a mano, y con frecuencia escucho "solo use bcrypt!" Se repite como un mantra. Pero cuando mencioné esto a otro desarrollador recientemente, dijo que bcrypt se basa en Blowfish, cuyo autor ha recomendado que se suspenda durante al menos 6 años.

En el artículo, parece que está hablando de Blowfish encryption , que sé que es una cosa completamente diferente del hashing de contraseñas, pero por otro lado, no puedes construir una casa sólida en una fundación temblorosa. Así que tengo que preguntar, ¿sigue siendo una buena idea usar bcrypt?

    
pregunta Mason Wheeler 10.03.2014 - 18:26
fuente

1 respuesta

4

La idoneidad de blowfish como cifrado y bcrypt como hash de contraseña no está relacionada en su mayoría. Hay muchos mejores reemplazos para blowfish, pero no tanto para bcrypt.

Blowfish está mayormente desanimado porque tiene un mejor reemplazo en AES, no porque esté roto. AES ha visto mucho análisis, durante y después de la competencia. Otro problema de Blowfish es su tamaño de bloque de 64 bits, lo que lleva a límites relativamente pequeños sobre la cantidad de datos que se pueden cifrar con una clave, mientras que AES utiliza bloques de 128 bits y, por lo tanto, puede manejar grandes cantidades de datos de manera segura. También tiene algunas propiedades molestas, como una configuración de teclas lenta y un uso de memoria relativamente alto.

PBKDF2-HMAC-SHA-1/2/3 es significativamente más débil que bcrypt, por lo que solo lo elegiría si necesita un cumplimiento estándar o si su idioma solo lo envía pero no es bcrypt de forma predeterminada. Los hashes subyacentes pueden ser seguros, pero eso no lo convierte en un buen hash de contraseña.

Como reemplazo moderno de bcrypt, el único candidato actualmente viable es scrypt. Ofrece seguridad mejorada, pero es relativamente nuevo, no es muy popular y no se ha visto mucho análisis. Tampoco se ha incluido en muchas bibliotecas estándar. Así que los criptógrafos más conservadores preferirán bcrypt sobre scrypt.

Una competencia para encontrar un nuevo hash de contraseña resultó en algunas alternativas interesantes, como su ganador Argon. Pero no los considero adecuados para la producción por otros cinco años más o menos. Quizás en 2020 tengamos una opinión similar de bcrypt como la de Blowfish ahora, pero todavía no estamos allí. Por ahora, bcrypt es una buena opción si eres conservador, o scrypt si eres progresivo.

    
respondido por el CodesInChaos 10.03.2014 - 18:45
fuente

Lea otras preguntas en las etiquetas