Bueno, vamos a pensarlo un momento.
El conjunto de caracteres para las contraseñas suele ser [A-Za-z1-0\~\!...]
o 26+26+10+10=72
caracteres para un total de 728 o 722,204,136,308,736
combinaciones diferentes (incluidas las combinaciones que son malas. Intentando capturar todos esos patrones es un poco inane).
En 1000Guesses/1Second
es 22,900.9Years
.
Bien, entonces la métrica de 1000 conjeturas por segundo ya debería levantar la bandera de limitación de velocidad para que tome más tiempo. Ahora solo pueden adivinar 1 por segundo.
22,900,942.9
years es mucho tiempo, pero están REALMENTE determinados.
Ahora pongamos un temporizador de bloqueo después de 10 intentos. Di por un minuto. Esto promedia a 1/6 una conjetura por segundo, o 137,314,541 years
. Estoy bastante seguro de que lo que quisieran para acceder también probablemente ya no sea relevante. ¡Sin embargo ahora es solo por el mérito de las cosas!
Ahora vamos a bloquear la cuenta después de 10 bloqueos y se requiere una llamada telefónica para desbloquearla. Ahora la persona sabe que el ataque está ocurriendo. El ataque ya no tiene ningún uso intensivo para intentar incluso después del bloqueo, ya que están garantizados para tener un nuevo correo electrónico o una nueva contraseña y están de nuevo en uno.
Por supuesto, esto es asumiendo que la persona tiene que pasar por todas las conjeturas para llegar allí. Siendo realistas, eso no siempre sucede porque tienen redes de zombis, pueden hacerlo por rangos por máquina y, a menudo, tienen suerte y lo encuentran rápidamente. Además, no todos los patrones de contraseñas se ajustan a estos patrones. A menudo se ajustan a un conjunto más pequeño de valores Regex que se aplican para probar su resistencia y mantenerlo al mínimo. Esto significa que todo esto es discutible si lo consiguen en el primer intento.
Dado que la aleatoriedad se aplica al forzamiento brutal, la respuesta real es incluir los siguientes métodos de protección:
- Límite de frecuencia (no más de X intentos por la duración del período Y)
- Bloqueos temporales (después de X fallas, los intentos de bloqueo en la cuenta para la duración del período Z)
- Bloqueos interactivos para el método de recuperación (requiere un método de recuperación)
- 2FA
Ahora el atacante no puede obtener la contraseña A MENOS QUE tenga suerte. ¡Buena suerte con eso!