Aprender la jerga de seguridad de las contraseñas: peppering de contraseñas

Ya hemos hablado de por qué guardar las contraseñas en texto plano es una idea terriblemente mala. Para cumplir unos mínimos estándares de ciberseguridad, los proveedores de servicios deben almacenar tus credenciales usando hashes. Hay quien va más allá y añade otro pequeño «ingrediente» —sal— a las contraseñas antes del hashing. Pero hay otra forma de proteger aún más las contraseñas: el peppering.

¿Qué son los peppers de las contraseñas?

Los peppers son valores secretos que se añaden a las contraseñas antes de cifrarlas con un hash. Son como una segunda sal: otra entrada capaz de cambiar el resultado del hash por completo. Sin embargo, a diferencia de las sales, no se almacenan en la base de datos junto con los hashes. ¿Pero por qué necesitamos sales y peppers en primer lugar?

Por seguridad, las contraseñas habitualmente se ejecutan con una función unidireccional llamada «hashing». Nunca se almacenan en texto plano. El algoritmo del hashing coge los datos y los traduce a un conjunto de caracteres completamente diferente e irreconocible: el hash de contraseña. Al tratar de iniciar sesión, el hash de tu contraseña se compara con el de la base de datos. Si coinciden, podrás iniciar sesión.

El problema es que los ciberdelincuentes pueden ejecutar contraseñas habituales con los mismos algoritmos. Si ven que hay hashes que coinciden, saben cuál es la contraseña original. Por tanto, para proteger tus contraseñas de los ataques de diccionario (adivinar palabras existentes) y de las tablas arcoíris (bases de datos de hashes preprogramados), los criptógrafos añaden sales.

Las sales son cadenas aleatorias de caracteres que se añaden a las contraseñas para que el resultado del hash sea completamente diferente. De esta manera, a los hackers no les bastará con echar un vistazo sin más al valor del hash de la contraseña ‘greentrees’, ya que la sal lo convertirá en algo como ‘greentreesF&i$#u’. Los delincuentes tendrían que usar fuerza-bruta para adivinar todas las combinaciones posibles de las contraseñas, por lo que tardarían mucho más en hackearlas.

El pepper es similar a la sal: un pequeño conjunto de datos que se añade a las contraseñas antes de cifrarlas con un hash mediante un algoritmo. Sin embargo, a diferencia de la sal, no se guarda en la base de datos junto con el valor del hash. En vez de eso, normalmente se incrusta en el código fuente del sitio web.

Pros y contras

La mayor ventaja de los peppers es que no se almacenan en la base de datos. Así, si se produjese una filtración de datos, aunque pudiera acceder a todas las contraseñas cifradas mediante hashes, el hacker necesitaría ejecutar un ataque de fuerza bruta contra la base de datos.

Sin embargo, como el pepper se incrusta en el código fuente, normalmente emplea el mismo conjunto de datos para cada contraseña y no se puede cambiar. Así que, tras una filtración de los datos, el pepper podría dar más problemas que beneficios. Además, la mayoría de los algoritmos de hashing avanzados están pensados para usarse con sales. Por tanto, implementar peppers podría resultar poco práctico.

Al final, queda clara una cosa: siempre debes usar contraseñas seguras y complejas. Nunca sabes lo seguro que es el algoritmo de hashing de tu proveedor de servicios. Y las contraseñas como las que emplean el nombre de tu mascota o tu película favorita son las primeras en descifrarse.

Suscríbete a las noticias de NordPass

Recibe las últimas noticias y consejos de NordPass directamente en tu bandeja de entrada.