Ahora el problema con la contraseña es que puede romperse usando un ataque de fuerza bruta.
No necesariamente.
Es posible mitigar el forzamiento de contraseñas de modo que sea prácticamente imposible forzarlas. Requiere mitigación en el sistema, pero también requiere que la contraseña sea segura también.
Cuando un esquema de encriptación deriva su clave de una contraseña, lo hace usando una función de derivación, que toma la contraseña como entrada y genera una cadena de clave suficientemente larga. Un ejemplo simple de una función de derivación es solo una función hash simple, como SHA-512 o Whirlpool. Dicha función de derivación es fácil de aplicar fuerza bruta, ya que se ejecuta muy rápidamente y no utiliza muchos recursos, por lo que puede ejecutarla millones de veces por segundo para probar millones de posibles contraseñas por segundo. La ejecución en una GPU puede extender esto a cientos de millones de contraseñas probadas por segundo porque puede calcular muchos hashes en paralelo.
Pero los esquemas de encriptación como el de Veracrypt utilizan una función de derivación que es difícil de aplicar a la fuerza bruta, ya que requiere una gran cantidad de tiempo y recursos de computación. Por ejemplo, en lugar de ejecutar un hash SHA-512 o Whirlpool sobre la contraseña una vez para derivar la clave, ejecuta esa función de hash una y otra vez, miles de veces, cada vez que la salida vuelve a la función de hash. Veracrypt hace esto por lo menos 200,000 veces, y hasta alrededor de 650,000 veces. Al forzar una contraseña bruta, tendría que ejecutar la función hash tantas veces, solo para intentar una contraseña única. Reduce la cantidad de contraseñas que puede utilizar por fuerza bruta por segundo, por ejemplo, de 1 millón de contraseñas por segundo hasta aproximadamente 1.5 (una y media) contraseñas por segundo. Esto casi mata la habilidad de la fuerza bruta. Las GPU aún podrían hacerlo más rápido, si funcionan con muchas contraseñas diferentes a la vez, pero todavía obtienes alrededor de 1 / 650,000 la capacidad de fuerza bruta.
Lo que nos lleva a la longitud de la contraseña. Si su contraseña es corta o trivial ("12345" o "hunter2"), es trivial forzar la fuerza bruta sin importar qué. Las contraseñas deben ser lo suficientemente largas e impredecibles como para que no sean descubiertas en los primeros mil millones de intentos con fuerza bruta. Lo bueno es que cada carácter que agregue a su contraseña multiplica significativamente su resistencia a la fuerza bruta. Si tiene una contraseña de 20 caracteres que no es predecible (por ejemplo, letras aleatorias con números), será prácticamente imposible la fuerza bruta. Junto con la mitigación de la fuerza bruta de Veracrypt que ralentiza la capacidad de fuerza bruta cientos de miles de veces, ahora una contraseña de 16 caracteres es igual de segura. E incluso una contraseña corta, por ejemplo, de 10 a 12 caracteres, probablemente no sea factible para la fuerza bruta, es decir, puede que todavía no se descubra después de meses o años de intento de fuerza bruta.