Comencemos por asegurarnos de que entendemos claramente qué es el "forzamiento brutal".
Un ataque de fuerza bruta es cuando un adversario intenta adivinar cada combinación de personajes, comenzando en uno. de longitud, y aumentando la longitud en uno hasta que la contraseña esté descifrada. p.ej. 1, 2, ... a, b, ... 11, 12, ... 1a, 1b, ... aa, ab, ... etc. Dependiendo del juego de caracteres utilizado, puede tomar un tiempo relativamente corto para adivinar todos los espacios clave posibles (mixalpha), o un tiempo relativamente mucho más largo para adivinar todos los espacios clave posibles (mixalpha-numeric-all-space). Lo importante que se debe tomar aquí es que el adversario simplemente está adivinando (y equivocándose) una gran cantidad de contraseñas. Ahora ..
"Por el bien de este ejemplo, digamos que estamos hablando de un shell linux / unix porque parece que está menos cubierto."
Si el adversario tiene acceso local y el disco duro no está cifrado, los hashes de contraseña se pueden recuperar sin iniciar sesión. Si el disco duro está cifrado, entonces su defensa principal contra los ataques de adivinación de contraseñas es configurar bloqueos de intentos fallidos y aumentar el tiempo de retardo después de la contraseña falla la validación Desde aquí me referiré a un adversario que ya ha irrumpido en tu sistema, robó los hashes y sales de tu contraseña de /etc/shadow
y está intentando descifrarlos.
"¿Hay alguna forma de estar seguro de que su contraseña no se puede romper con la fuerza bruta?"
No.
Si el adversario es capaz de recuperar sus hashes / sales de contraseña, puede comenzar a aplicar forzadamente los hashes en su propio hardware, y tendrá un control absolutamente cero sobre esto.
Si, en cambio, te refieres a un adversario que aún no tiene acceso a tu computadora, pero está tratando de forzar tu acceso SSH, entonces sí, usar un firewall / IPS evitará prácticamente todos los intentos de fuerza bruta. Simplemente el registro de los inicios de sesión fallidos no es suficiente, pero usar una herramienta que prohíba las IPs ofensivas ( como Fail2Ban ) intente adivinar una contraseña de calidad inviable.
"Los intentos fallidos de registro también parecen ser una buena medida para contrarrestar, pero por supuesto esto no necesariamente hace nada, especialmente si el atacante se enruta a través de un nodo tor y no le importa si el administrador es consciente de que lo está haciendo. tratando de romper la contraseña ".
Bien, ¿volver a los ataques remotos, probablemente contra SSH?
"... especialmente si el atacante se enruta a través de un nodo tor ..."
Tor enumera públicamente todos sus nodos de salida. Prohibirlos a todos.
"... y no le importa si el administrador es consciente de que está intentando romper la contraseña".
Siempre que su firewall / IDS esté configurado correctamente, no importa cuántos servidores proxy diferentes tenga el adversario a su disposición, se necesitaría una cantidad de tiempo y proxies insuperables para imponer cualquier contraseña de calidad.
"Sí, es posible ralentizar un ataque de varias maneras, pero si un atacante está perfectamente de acuerdo con esperar unos años, esto no será suficiente".
La mayoría de los tipos de linux tienen sus contraseñas con SHA-256. Si su adversario es capaz de un trillón de adivinanzas / segundo (según lo citó Edward Snowden hace unos años), y tenía una contraseña alfa-numérica de doce caracteres mixtos, se necesitarían 104 mil años para fuerza bruta el poco más de 3 sextillion (3,279,156,381,453,603,300,000) posibles combinaciones de contraseñas. A menos que esté utilizando una contraseña con palabras del diccionario o patrones comunes de números y / o letras, no tiene que preocuparse por los ataques basados en reglas / listas de palabras, que en realidad es la forma más común y exitosa de descifrar contraseñas. Esto ni siquiera comienza a tomar en cuenta el tiempo adicional empleado en cada conexión si se trata de una fuerza bruta contra un servidor SSH sin firewall.
"Los rompecabezas lógicos son una táctica popular, sin embargo, estaba considerando esto y parece que un ser humano podría resolver y almacenar todas las respuestas a la base de datos de rompecabezas (con suficiente tiempo). Los datos podrían cambiarse periódicamente, pero esto puede A su vez, también puede tratarse con scripts humanos y posiblemente de inteligencia artificial. "
No sé exactamente lo que quieres decir aquí, pero si un humano puede resolver un enigma, una computadora puede aprender a resolverlo en mucho menos tiempo.