El problema con la selección de una contraseña basada en cualquier patrón es que, si el atacante conoce el patrón, puede eliminar un número relativamente grande de posibles contraseñas que de otro modo tendrían que probar.
Es por esto que abogamos para que las contraseñas se generen al azar tanto como sea posible. Las únicas restricciones que podría poner en la generación aleatoria son:
- Longitud mínima de caracteres
- Inclusión de múltiples tipos de caracteres
Esos ayudan a asegurar (aunque, estrictamente, no garantizar) que el generador aleatorio no escupirá involuntariamente una contraseña que probablemente se encuentre en los diccionarios o en las tablas del arco iris. Sin embargo, donde se puede evitar, no queremos agregar restricciones como estas:
- Longitud máxima de caracteres
- Exclusión de ciertos caracteres o tipos de caracteres
- Coincidencia de patrones específicos (por ejemplo, una palabra del diccionario repetida n veces, incluso si n es aleatoria)
Esto en gran medida reducirá el espacio de búsqueda para un atacante que conoce su esquema de generación de contraseña. Es posible que aún puedas esquivar a aquellos que solo buscan en la base de datos las contraseñas que pueden romper fácilmente. Pero será mucho más vulnerable a un atacante dedicado e ingenioso que lo está atacando específicamente (algunos llaman a esto una "Amenaza Persistente Avanzada" o "APT"), o si su método en particular se vuelve común entre otros usuarios y la gran escala los atacantes ajustan sus métodos para compensar.
La verdadera generación aleatoria de contraseñas, con muy pocas restricciones para evitar la salida accidental de contraseñas débiles, es la única forma de asegurarse de que su contraseña sea lo suficientemente fuerte como para resistir prácticamente a cualquier atacante. Por supuesto, todo esto supone que los mecanismos de almacenamiento y transmisión de contraseñas también son razonablemente seguros, pero eso está fuera del alcance de esta pregunta.
En resumen: una contraseña basada en una sola cadena repetida varias veces, siempre es más vulnerable a un ataque dedicado que una que tiene la misma longitud y se genera aleatoriamente en todas partes.