Cuando las violaciones de datos pasó de ser una amenaza ocasional a una realidad persistente a principios de la década de 2010, una pregunta seguía surgiendo 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 sopesaban las consecuencias de cada incidente: qué algoritmo de hash de contraseña tenía el objetivo utilizado para proteger su contraseñas de los usuarios?
Si la respuesta era una función criptográfica defectuosa como SHA-1, sin mencionar la pesadilla de las contraseñas almacenadas sin cifrar sin codificar, la víctima tenía más de qué preocuparse porque significaba que sería más fácil para quien robara los datos descifrar las contraseñas. , acceda a las cuentas de los usuarios directamente y pruebe esas contraseñas en otro lugar para ver si las personas las reutilizaron. 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 co-inventores, dice que mirando hacia atrás, el algoritmo siempre ha tenido buena energía, gracias a su disponibilidad de código abierto y características técnicas que han alimentado su longevidad. Provos le contó a WIRED sobre una retrospectiva del algoritmo que publicó esta semana en Usenix ;login:. Al igual que muchos 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 aniversario importante.
Una versión de bcrypt se envió por primera vez con el sistema operativo OpenBSD 2.1 de código abierto en junio de 1997. En ese momento, Estados Unidos todavía imponía límites estrictos 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 ha vuelto”, dice. «Creo que eso se debe en parte a que en realidad resolvió un problema real, pero también a que era de código abierto y no tenía restricciones de exportación. Y luego todos terminaron haciendo sus propias implementaciones en todos estos otros idiomas. Entonces, en estos días, si estás Ante la necesidad de realizar un hashing de contraseñas, bcrypt estará disponible en todos los idiomas en los que posiblemente pueda operar. Pero otra cosa que me parece interesante es que sigue siendo relevante 25 años después. Es una locura.
Provos desarrolló bcrypt con David Mazieres, profesor de seguridad de sistemas en la Universidad de Stanford que estudiaba 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 trabajaron 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 realizar 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 elija una contraseña, la plataforma que está utilizando la procesa, y luego, cuando inicie sesión en su cuenta en el futuro, el sistema toma la contraseña que ingresó, procesa y luego compara la resultado al hash de la contraseña guardada para su cuenta. Si los hash coinciden, la conexión será exitosa. De esta manera, el servicio solo recopila hashes para comparar, no las contraseñas en sí.