Bcrypt, un popular algoritmo de hashing de contraseñas, comienza su largo adiós


Cuando las violaciones de datos pasó de ser una amenaza ocasional a un hecho persistente de la vida a principios de la década de 2010, una pregunta surgiría una y otra vez a medida que las organizaciones de víctimas, los investigadores de seguridad cibernética, las fuerzas del orden público y la gente común evaluaban las consecuencias de cada incidente: ¿Qué algoritmo de hash de contraseña había el objetivo utilizado para proteger las contraseñas de sus usuarios?

Si la respuesta era una función criptográfica defectuosa como SHA-1, sin mencionar la pesadilla de las contraseñas almacenadas en texto plano sin ningún tipo de codificación codificada, la víctima tenía más de qué preocuparse porque significaba que sería más fácil para quienquiera que robara los datos. para descifrar las contraseñas, acceder directamente a las cuentas de los usuarios y probar esas contraseñas en otro lugar para ver si las personas las habían reutilizado. Sin embargo, si la respuesta era el algoritmo conocido como bcrypt, había al menos una cosa menos por la que entrar en pánico.

Bcrypt cumple 25 años este año, y Niels Provos, uno de sus coinventores, dice que mirando hacia atrás, el algoritmo siempre ha tenido buena energía, gracias a su disponibilidad de código abierto y las características técnicas que han alimentado su longevidad. Provos habló con WIRED sobre una retrospectiva del algoritmo que publicó esta semana en Usenix ;login:. Sin embargo, como tantos caballos de batalla digitales, ahora existen alternativas más sólidas y seguras a bcrypt, incluidos los algoritmos hash conocidos como scrypt y Argon2. Provos mismo dice que el hito de un cuarto de siglo es suficiente para bcrypt y que espera que pierda popularidad antes de celebrar otro cumpleaños importante.

Una versión de bcrypt se envió por primera vez con el sistema operativo de código abierto OpenBSD 2.1 en junio de 1997. En ese momento, Estados Unidos todavía imponía estrictos límites de exportación de criptografía. Pero Provos, que creció en Alemania, trabajó en su desarrollo mientras aún vivía y estudiaba allí.

“Una cosa que encontré tan sorprendente fue lo popular que se volvió”, dice. “Creo que en parte [it’s] probablemente porque en realidad estaba resolviendo un problema real, pero también porque era de código abierto y no estaba sujeto a restricciones de exportación. Y luego todos terminaron haciendo sus propias implementaciones en todos estos otros idiomas. Por lo tanto, en estos días, si se enfrenta al deseo de realizar un hashing de contraseñas, bcrypt estará disponible en todos los idiomas en los que posiblemente pueda operar. Pero la otra cosa que encuentro interesante es que sigue siendo relevante 25 años después. Eso es una locura”.

Provos desarrolló bcrypt con David Mazieres, un profesor de seguridad de sistemas en la Universidad de Stanford que estaba estudiando en el Instituto de Tecnología de Massachusetts cuando él y Provos colaboraron en bcrypt. Los dos se conocieron a través de la comunidad de código abierto y estaban trabajando en OpenBSD.

Las contraseñas codificadas se someten a un algoritmo para transformarse criptográficamente de algo legible en una codificación ininteligible. Estos algoritmos son «funciones unidireccionales» que son fáciles de ejecutar pero muy difíciles de decodificar o «descifrar», incluso por parte de la persona que creó el hash. En el caso de la seguridad de inicio de sesión, la idea es que usted elija una contraseña, la plataforma que está utilizando haga un hash de ella, y luego, cuando inicie sesión en su cuenta en el futuro, el sistema toma la contraseña que ingresó, la procesa. y luego compara el resultado con el hash de la contraseña en el archivo de su cuenta. Si los hashes coinciden, el inicio de sesión será exitoso. De esta manera, el servicio solo recopila hashes para comparar, no las contraseñas en sí.



Source link-46