¿Qué tan difícil es hackear una cuenta de correo web con una contraseña de 8 caracteres?

2

Suponga que el hacker comienza solo con su dirección de correo electrónico y que tiene un alto incentivo para obtener acceso.

ACTUALIZACIÓN: También asuma que la contraseña es única (nunca se usa en ningún otro lugar) y NO es una palabra que se pueda adivinar como el nombre de su perro con algunos caracteres impares. Su contraseña única en cuestión podría ser algo como: q*b!oss0 .

Si la longitud de una contraseña de 8 caracteres es problemática, suponga que la longitud aumenta a 10 caracteres.

¿Cuáles son las preocupaciones, los ataques y las mitigaciones que un proveedor de correo web podría tener en cuenta para prevenir el descifrado de contraseñas?

EDIT 2: También asuma que se utiliza la autenticación de dos factores. ¿Esto haría que la cuenta de correo web sea extremadamente segura?

    
pregunta bws92082 15.04.2016 - 17:00
fuente

2 respuestas

27

"Ocho dígitos" significa 10 8 = cien millones de contraseñas posibles. En el mejor de los casos , seleccionó su contraseña de forma totalmente aleatoria, lo que implica que el atacante, en promedio , tendrá que probar la mitad antes de golpear la correcta (por lo tanto, cincuenta millones de intentos de conexión ).

("en el mejor de los casos" significa que el atacante siempre tiene la opción de probar las contraseñas en un orden aleatorio, por lo que no hay una estrategia de selección de contraseñas, por más ingeniosa que parezca, eso puede hacer las cosas más difíciles para el atacante. Sin embargo, algunas estrategias de selección pueden hacer las cosas más fáciles . Por lo tanto, en la generación de contraseñas, reglas de aleatoriedad.

El término importante arriba es "promedio". En cualquier caso específico, un atacante puede ser especialmente afortunado o especialmente desafortunado. Sin embargo, el atacante puede realizar el mismo tipo de cálculos y decidirá atacar o no atacar en función de sus posibilidades de éxito a priori . Además, no todos los atacantes son completamente racionales en su toma de decisiones.

La cantidad de autenticaciones que puede intentar el atacante depende del contexto y del comportamiento del servidor. Si el servidor utiliza hardware "típico", implementa un procesamiento de contraseña económico (por ejemplo, un solo SHA-1, no bcrypt), y no limita las tasas de autenticación, entonces un atacante puede esperar, por ejemplo, 1000 intentos de autenticación por segundo, alcanzando así los 50 Millones en unos 50000 segundos, es decir, unas 14 horas. Por otro lado, si el servidor bloquea la cuenta después de 10 intentos de autenticación sucesivos fallidos, el atacante no podrá intentar más de 9 intentos entre cualquier momento en que usted se conecte; Si se conecta a diario, el tiempo de interrupción esperado del atacante será de aproximadamente 15210 años.

Dado que hay mucha variación en la forma en que los servidores implementan la autenticación, y en particular en lo difícil que intentan detectar los intentos de fuerza bruta y cómo reaccionan a fondo, la única respuesta posible a su pregunta solo puede ser "depende" .

    
respondido por el Thomas Pornin 15.04.2016 - 17:49
fuente
1

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!

    
respondido por el Robert Mennell 20.04.2016 - 01:54
fuente

Lea otras preguntas en las etiquetas