Fuerza bruta - ¿Qué tan difícil?

0

Estoy haciendo un proyecto de investigación y tengo una pregunta sobre qué tan difícil sería forzar algo en algo.

  • Diga que hay un texto: "Mi nombre es James"
  • Al eliminar los espacios en blanco se obtiene "MynameisJames"

Si altera cada carácter de esa cadena con un carácter diferente al azar, en el rango de alfanuméricos y símbolos de mayúsculas y minúsculas, ¿qué tan difícil sería para la fuerza bruta y obtener la cadena original?

La cadena cifrada se vería como "3r # u8N! PRfeq1".

    
pregunta CBaker 15.07.2018 - 20:31
fuente

3 respuestas

5

La fuerza bruta consiste en generar repetidamente una nueva entrada y luego verificar si la suposición fue correcta o no. La dificultad de la fuerza bruta depende del número promedio de conjeturas necesarias (es decir, cuántas entradas diferentes hay) y de la rapidez con que se verifica la exactitud de una conjetura.

Nada en su pregunta proporciona estos dos datos y, por lo tanto, su pregunta no puede ser respondida para su ejemplo específico.

Pero en general, la cantidad de tiempo necesario es la mitad del espacio de búsqueda (es decir, el número de entradas) multiplicado por el tiempo necesario para crear la estimación y luego verificar si la estimación es correcta. Por ejemplo, con una cadena de 8 caracteres (AZ, es decir, 26 caracteres), el número de entradas posibles es 26 8 y la mitad de estas (26 8 / 2) son necesarias para adivinar correctamente en promedio. Si 10.000 adivinaciones por segundo son posibles, el forzamiento bruto tomaría aproximadamente 120 días en promedio para adivinar la entrada correcta.

    
respondido por el Steffen Ullrich 16.07.2018 - 06:50
fuente
1

La fuerza bruta está disminuida por el número de posibilidades ^ la longitud de la cadena. p.ej. 'Mynameisjames' tiene 13 caracteres, y hay 26 letras en el alfabeto, por lo que 26 13 . Lo que equivale a un número masivo: 2.4811529e+18

Sin embargo, existe una técnica conocida como el ataque de cumpleaños, que se deriva del teorema de cumpleaños de que solo se necesitan 23 personas en una habitación para que se realicen los cumpleaños de dos personas el mismo día. Tan esencialmente, una colisión. Puede encontrar más información aquí: enlace

Por lo tanto, un ataque de fuerza bruta tomará mucho tiempo, sin embargo, un ataque de cumpleaños sería sustancialmente más rápido. Básicamente 26 13/2 .

El aspecto del tiempo realmente se reduce a la velocidad de la (s) computadora (s) que tiene a mano para intentar descifrar la contraseña. Los valores que proporcioné te darán el número de intentos necesarios para romper la contraseña, por lo que se pueden subponer a la cantidad de controles que una máquina puede realizar por segundo para darte tu respuesta final.

    
respondido por el Connor J 16.07.2018 - 12:01
fuente
1

Muchas de las respuestas proporcionadas incluyen 26 caracteres como su conjunto de caracteres, pero eso no es correcto. Tendría que ser al menos 52 para los caracteres mayúsculas y minúsculas. Sin embargo, si fueras a hacer fuerza bruta, no podrías saber si eran solo letras sin números ni puntuación. Entonces, el número estándar de caracteres es 94, 26 A-Z, 26 a-z, 10 para 0-9 y 32 "caracteres especiales" para la puntuación.

Ahora, para forzar completamente esto, debes conocer la longitud de la "contraseña" (llamemos a MynameisJames una contraseña), por lo tanto, 13 caracteres. Por lo general, no conoce esta información, por lo tanto, lo que sucede es que comienza con un ataque bruto forzando todo para 4 caracteres, luego todo para 5 y sigue aumentando hasta que lo encuentre.

Esto puede ser muy tedioso. Incluso con una plataforma de craqueo que tenía una i7 y 2 1080 tarjetas gráficas, la aplicación de una contraseña hash MD5 de 10 caracteres podría durar una semana, y eso suponiendo que supiera que eran 10 caracteres. Concedido, hay más involucrado con eso porque en realidad está rompiendo el "hash", por lo que la computadora debe generar un hash para cada entrada probada y eso lleva más tiempo.

"Qué difícil sería" es una pregunta difícil de responder ya que no es particularmente medible. Dicho esto, una semana con una computadora criptográfica probablemente lo adivinaría correctamente si estuviera en un formato hash obsoleto (MD5). En el sentido de que esto es solo un texto simple sin formato, probablemente lo más probable es que intente ingresar una contraseña, en lugar de descifrar un hash, lo que demora mucho más porque tiene que esperar una respuesta. Si se trataba de una secuencia de comandos solo para adivinar un carácter desconocido de texto simple 13 que se ingresó, podría tomar algunos días si se optimiza (escribí una secuencia de comandos como esta para probar el éxito de las listas de contraseñas, por lo que puedo decir de primera mano que se ejecutarán 4 millones intentos en unas pocas horas).

La contraseña de 13 caracteres con un conjunto de 94 caracteres de fuerza bruta es 44 x 10 ^ 24 intentos. El método dividido por 2 solo te da un 50% de probabilidad y mi experiencia es que la contraseña siempre parece estar en la segunda mitad de esos 50, solo la ley de murphy de "en la práctica" vs "en teoría".

Este artículo también podría ser útil enlace

    
respondido por el bashCypher 16.07.2018 - 19:27
fuente

Lea otras preguntas en las etiquetas