Hay un montón de preguntas, respuestas, artículos, artículos, caricaturas, etc. sobre cómo elegir una contraseña de tal manera que sea difícil de adivinar o descifrar con un ataque basado en un diccionario.
No entiendo por qué un sistema me permitiría intentar ese tipo de ataque en primer lugar, así que me pregunto qué es lo que me falta de ese tipo de ataque, o cualquier otro tipo de ataque que Implica probar millones de contraseñas diferentes hasta que una funcione.
¿Por qué alguien querría que un sistema permitiera cientos o incluso millones de intentos de inicio de sesión con el mismo nombre de usuario y contraseñas diferentes en un tiempo relativamente corto? Agradezco que me den un poco de holgura si no puedo recordar mi contraseña o si pierdo la clave correcta cuando la escribo, pero no necesito, ni quiero, que se me permita probar y fallar 100 veces con el mismo nombre de usuario y a toda velocidad.
En otras palabras, ¿qué tan difícil sería diseñar un sistema de tal manera que después de un intento fallido de inicio de sesión no se pueda realizar el siguiente antes de que transcurra un tiempo que sea proporcional al número de inicios de sesión fallidos para ese nombre de usuario? Estoy pensando en décimas de segundos o algo así como un segundo más por cada intento fallido, lo que no afectaría los intentos de un usuario real, pero a mi entender limitaría seriamente la posibilidad de ataques de diccionario.
En general, excepto por algunos nichos que puedo imaginar, ¿no sería relativamente trivial e inofensivo para la gran mayoría de los sistemas hacer que este tipo de ataques no sean factibles?