¿Tarda más en forzar una contraseña que comience con z que una que comience con a?

5

Me preguntaba sobre lo siguiente:

Si alguien intenta obtener mi contraseña con Brute Force, ¿una contraseña que comience con "a" es más rápida que una que comience con "z"? En este caso, asuma que la contraseña no tiene sal, solo tiene un hash.

¿Un ataque de fuerza bruta comienza con "a", intenta y luego continúa o calcula todos los hashes primero y luego ve si hay coincidencias?

    
pregunta print x div 0 29.07.2014 - 13:31
fuente

8 respuestas

9

Yo diría sí . No de manera significativa (no bases tus contraseñas en esto), pero aún así.

Frecuencia de letras

En primer lugar, si sigue esta regla, su contraseña contiene una 'z' en lugar de una 'a'. La letra 'a' aparece mucho más frecuentemente en texto en inglés que la letra 'z' (esto también es cierto para el comienzo de una palabra ), y como tal, será parte de las palabras en una palabra más frecuentemente. Además, muchos mecanismos de descifrado (como el modo Incremental de John the Rippers ) probablemente descifre una contraseña que contenga un ' a 'en lugar de' z 'más rápido. Esto es solo un efecto secundario de su regla, pero sigue siendo relevante. Y hace que sea más probable que las contraseñas que comienzan con una 'a' estén descifradas que las contraseñas que comienzan con una 'z'.

Métodos de craqueo desesperados

Digamos que el cracker hizo todas las cosas comunes primero: listas de palabras, etc. No tuvieron éxito. Ahora pueden probar las contraseñas de manera sistemática (tenga en cuenta que esto generalmente será lo último que intenten). Comenzando con a,b,...,z,aa,ab,... y así sucesivamente. En este caso, las contraseñas que comienzan con a se descifrarían antes. Pero es altamente improbable que el atacante simplemente se detenga en azzz y no intente bzzz,...zzzz también. Solo tomaría un poco más de tiempo

Nuevamente, esto no tiene ningún sentido en realidad. Yo diría que tiene un efecto, pero este efecto puede ser descuidado en el mundo real.

Tu pregunta adicional

No, un atacante no calculará primero todos los hashes ( todos los hashes es un grupo bastante grande), y los comparará solo al final. Calcularán un hash, lo compararán, calcularán otro hash, lo compararán, y así sucesivamente.

    
respondido por el tim 29.07.2014 - 14:08
fuente
16

En general, los atacantes son adaptativos. Ellos saben lo que piensa la gente. Si los usuarios tienden a comenzar sus contraseñas con 'z', los atacantes comenzarán su fuerza bruta con esa letra.

Cualquier estrategia específica, como elegir una 'z' como primera letra, puede darle una ventaja sobre el atacante solo mientras el atacante no lo sepa; por lo tanto, hablar de ello en un sitio público de preguntas y respuestas; un sitio no es el movimiento más inteligente de todos los tiempos. Además, los atacantes siempre tienen la opción de probar las contraseñas en un orden aleatorio, lo que garantiza un caso no peor para el atacante. Cuando hay N contraseñas equiprobables, el costo promedio para el atacante es N / 2 , y al intentar las contraseñas en un orden aleatorio, el atacante logra ese costo independientemente de su estrategia de elección.

El punto importante es que la protección de contraseña es estocástica. Para cualquier instancia de contraseña específica, un atacante puede tener suerte; También puede ser especialmente desafortunado. Por lo tanto, analizamos la resistencia de las contraseñas en función del proceso de generación de contraseñas , no en función de una instancia de contraseña específica: el proceso de generación nos dice cuál será la tasa de éxito promedio del atacante. "Promedio" es la palabra crucial.

Tome nota, también, de que las probabilidades gobiernan su vida: cada vez que sale de su hogar, está tomando la apuesta probabilística de que no será golpeado por un rayo o mordido por un Rottweiler. Aceptas esto porque instintivamente realizas un análisis de costo / beneficio y consideras que tales eventos son lo suficientemente improbables como para que no superen los beneficios de poder caminar afuera.

Ese concepto también se aplica a las contraseñas: confiará en que su proceso de generación de contraseñas tiene una entropía suficientemente alta, es decir, que la tasa de éxito del atacante sea lo suficientemente baja, que los atacantes ni siquiera intentarán (o ganarán) t tener éxito con una probabilidad suficientemente alta). En ese sentido, "aaaaaaaa" no es más fuerte o más débil que "zzzzzzzz", siempre y cuando el método que utilices para generar tu contraseña pueda producir ambas con las mismas probabilidades. La fortaleza de una contraseña no está en lo que es, sino en lo que podría haber sido.

    
respondido por el Tom Leek 27.10.2014 - 16:04
fuente
5

Primero, la mayoría de las herramientas / sitios web como "HowSecureIsMyPassword" no solo consideran los ataques de fuerza bruta sino también los ataques de diccionario y arco iris, así como las reglas simples como la longitud de la contraseña, el grupo de caracteres, el uso de palabras, etc. Por lo tanto, las contraseñas como aaaaaaa y ZZZZZZZ , la mayoría de las veces se evaluarán de la misma manera.

Según mi conocimiento, no existe un método "común" para iniciar una secuencia de fuerza bruta aparte de los simples a a ZZZZZZ (elegidos para ilustrar un punto y no palabras / cadenas en particular).

Responder a tu última pregunta genera más preguntas: qué tan rápido es el proceso de fuerza bruta (también depende de muchas cosas), qué entiendes por "diferencia a calcular". En particular, puede calcular el conjunto total de contraseñas y hacer un formulario de evaluación allí.

Sobre el 144 quadrillion bruteforce durante 1 año, puedo decir que este número también depende de muchos factores. Primero, ¿podemos ejecutar intentos de fuerza bruta ilimitados? Si nos sometemos a un formulario que calcula el hash, esto reducirá significativamente la "velocidad". Si estamos (fuera de línea / en línea) haciendo fuerza bruta en un hash, entonces estamos hablando de grupos más grandes ( 128/256/512/1024 bits hashes). En segundo lugar, considerando un aspecto más práctico, es la contraseña que es "valiosa" para dedicarle 1 año y será relevante después de ese período.

    
respondido por el go2 27.10.2014 - 16:05
fuente
2

Solo depende de lo bien escrito que esté el software. Mal escrito que a partir de "a" entonces sí más seguro.

De lo contrario, programación en paralelo (Por supuesto, esto se puede programar de manera diferente y optimizado por el compilador, etc.).

No lo compliquemos más, hagámoslo simple y digamos que cada núcleo tiene la misma cantidad de datos para procesar y que Core 0 y 1 no van a utilizar otros procesos.

  • El núcleo 0 funcionará desde A hasta M (que es la mitad del alfabeto)
  • El Core 1 funcionará desde Z hasta N (que es la otra mitad del alfabeto)

La razón por la que funciona es porque el Core 0 está haciendo el trabajo más rápido que el Core 1, por lo que puede asumir el siguiente procesamiento antes de continuar.

Por lo tanto, su pregunta debería ser contra un software que se haya utilizado para el uso de fuerza bruta.

    
respondido por el Paul 27.10.2014 - 19:36
fuente
2

La entropía es más importante que la letra inicial. Un ataque de fuerza bruta competente debe clasificar las conjeturas por frecuencia de uso en lugar de alfabéticamente. Si son tontos y van en orden alfabético, entonces habría una ventaja, pero si sus contraseñas son cebra y mi contraseña es a#4difk* , su contraseña será adivinada MÁS pronto, ya que una lista de palabras basada en la frecuencia adivinaría cebra relativamente pronto, pero no adivinaré mi contraseña hasta que empiece a probar todas las combinaciones posibles.

Incluso si su contraseña es zf894SZD , sería difícil decir cuál se alcanzaría primero porque diferentes crackers usarán diferentes enfoques para hacer conjeturas. Para ser verdaderamente aleatorios, realmente pueden decidir voltear las cosas sobre su cabeza e ir con las opciones de letras menos comunes primero, suponiendo que alguien pueda haber pensado que serían más inteligentes en lugar de ser verdaderamente aleatorios. Realmente no puedes decirlo.

La mejor contraseña es una que realmente es alta entropía, lo que significa que no hay un sistema con el que un atacante pueda coincidir. Es simplemente una gran cantidad de datos aleatorios que no tienen un camino rápido para adivinarlos porque no hay ningún patrón en absoluto.

    
respondido por el AJ Henderson 29.07.2014 - 15:37
fuente
1

Dadas las dos opciones A**** y Z**** , no puedes saber cómo funciona el atacante, de A a Z o de Z a A. Incluso puede comenzar desde el final de la palabra: ****A o% código%. Si quiere estar seguro de esto, agregue un carácter adicional a su contraseña y tal vez M sea la opción más segura, segura en el medio.

No puedes depender de un solo carácter para tu seguridad. Si ese es el caso, o si ese es tu problema, agrega uno más. Si no lo haces, elimina un carácter cuando calcules su fuerza.

    
respondido por el SPRBRN 27.10.2014 - 17:12
fuente
0

La fuerza bruta es un enfoque no un programa específico. La fuerza bruta tiene como objetivo cubrir todas las contraseñas posibles, pero la forma en que se implementa el algoritmo es específica para un enfoque de programadores. Uno puede comenzar en una, otros pueden comenzar con la letra más utilizada. Mañana alguien puede proponer un nuevo enfoque.

Ya hay listas precalculadas de hashes disponibles. Por ejemplo, el hash MD5 de zzzzz es 95ebc3c7b3b9f1d2c40fec14415d3cb8 . Conéctelo a Calculadora de hash inversa y obtendrá zzzzz en 5 segundos.

No debes depender de trucos como ser creativo con tu contraseña, sino usar contraseñas seguras con caracteres generados aleatoriamente. Otro enfoque es usar una oración con varias palabras que pueda recordar y luego usar la primera letra de cada una. Un administrador de contraseñas también es posible. Para las contraseñas en línea, prefiero PwdHash con una sola contraseña segura para poder usar una única contraseña en múltiples sitios sin preocupaciones. Ahora prefiero esto a los administradores de contraseñas debido a la simplicidad, aunque todavía uso un administrador de contraseñas.

    
respondido por el Ken Clubb 29.07.2014 - 14:38
fuente
0

No hay una contraseña que comience con z no es más segura. Los ataques de fuerza bruta a menudo usan diccionarios para iterar a través de una posible lista de contraseñas. Eventualmente llegará a las entradas que comienzan con z. Tenga en cuenta que algunos diccionarios no enumeran las contraseñas alfabéticamente, pero de acuerdo con la frecuencia con la que se puede generar una contraseña (según la experiencia anterior); como password1234$ o zzzzz .

Incluso si el ataque de Fuerza Bruta calcula las permutaciones de la contraseña sin un diccionario, al final, llega a las contraseñas que comienzan con z.

La mejor manera de mitigar los ataques de Fuerza Bruta es imponer contraseñas complejas, mecanismos de bloqueo de cuentas (aunque esto invita a DDOS) o implementar reglas de detección de intrusiones sólidas.

    
respondido por el BigBlue 29.07.2014 - 13:47
fuente

Lea otras preguntas en las etiquetas