Si no hay dos usuarios que utilicen la misma contraseña, en teoría no es necesario agregar el hash de contraseña. ¿Con qué frecuencia, en la práctica, dos usuarios tienen la misma contraseña?
Es terriblemente frecuente que muchos usuarios utilicen la misma contraseña. Hace dos años, Yahoo perdió contraseñas para medio millón de cuentas . Según el proyecto de contraseña , solo el 77% eran únicos. Estas fueron las contraseñas más frecuentes y la cantidad de usuarios que las usaron:
| Word | Count |
+-------------------+
| 123456 | 1667 |
| password | 780 |
| welcome | 437 |
| ninja | 333 |
| abc123 | 250 |
| 123456789 | 222 |
| 12345678 | 208 |
| sunshine | 205 |
| princess | 202 |
| qwerty | 172 |
Para su defensa, muchas de estas cuentas podrían ser cuentas de correo electrónico desechables que a los propietarios realmente no les importan, pero probablemente también haya muchas cuentas allí, que son las cuentas de correo principales capaces de restablecer las contraseñas a muchos. de servicios importantes.
Una política de contraseñas que obliga a los usuarios a usar un número mínimo de caracteres y al menos una letra mayúscula, una letra minúscula, un número y un carácter especial podrían evitar muchas de estas contraseñas triviales, pero si hay suficientes usuarios, es probable que detecte la misma "actualizaciones triviales" a las mismas contraseñas estándar débiles que algunas personas tienden a usar (como password
se convierte en Password1!
).
La suposición ya es incorrecta. Incluso si cada contraseña fuera única, aún necesitarías sales.
Sin sales, el atacante puede revisar su lista de posibles contraseñas solo una vez, comparar el hash de cada intento y verificar si el resultado coincide con alguno de los hashes almacenados. En otras palabras, el atacante solo necesita un único cálculo por conjetura. Esto no tiene nada que ver con si las contraseñas son únicas o no.
Las sales lo evitan, porque hacen imposible reutilizar un hash calculado en diferentes cuentas de usuario. El atacante tiene que hacer un cálculo por usuario y .
Pero incluso si ignora esto por un momento y solo ve las sales como una forma de ocultar contraseñas duplicadas, su escenario sigue siendo poco realista: no es suficiente que las contraseñas sean únicas en el sistema su . Deben ser únicos en todos los sistemas todos que utilizan el mismo algoritmo hash. De lo contrario, un atacante podría encontrar contraseñas duplicadas al comparar sus hashes con los hashes de alguna otra aplicación.
Dado que es muy poco probable que un usuario promedio tenga una contraseña única en todo el mundo, necesita sales en cualquier caso.
Los números varían de una fuga a otra, pero hay algunas tendencias generales. Por ejemplo, en la filtración de Adobe en 2013, 1.5% de los usuarios usó "123456" como su contraseña, y el 44% de las cuentas tenía una contraseña no única . En una filtración de 2009 de RockYou.com , el 45% no era único.
En resumen, las personas no son muy buenas para elegir contraseñas originales.