¿Cómo un ataque de fuerza bruta determina realmente que ha tenido éxito? [duplicar]

3

En primer lugar, no se trata de descifrar contraseñas de hash. Sé que un ataque de fuerza bruta o diccionario sabe que rompió la contraseña cuando entra.

Sin embargo, si un atacante está tratando de aplicar un mensaje de fuerza bruta, digamos un mensaje transmitido por un gobierno a su embajada en un país extranjero, ¿cómo determina el intruso que finalmente ha encontrado el texto simple?

Editado:

Resulta que mi pregunta original estaba mal escrita. Declaré que no estaba preguntando por descifrar contraseñas, y luego formulé la pregunta como si eso fuera lo que preguntaba, al menos en parte. Por un lado, hablé de MD5, que es un algoritmo HASHING, no un algoritmo usado para cifrar con el propósito de ser descifrado. @ lucas-kauffman dio una buena respuesta a lo que parecía preguntarme, y gracias por eso, ya que fue informativo.

Déjame lanzar esto de manera diferente para evitar confusiones.

Dado un texto cifrado que fue creado usando criptografía de clave pública, y asumiendo que un atacante tenía los recursos para usar un método de fuerza bruta para atacarlo, ¿cómo decidiría el programa de craqueo si finalmente había logrado el plan? ¿texto? Esto no es descifrar contraseñas, donde el resultado sería obvio (entrada ganada a la cosa que está siendo atacada). Digamos que el texto cifrado del mensaje era algo parecido a "JPOAISUDF89L; JKQWERTYQIOP34JUU890JEROTUQ3-49TJ" (< == solo algunos caracteres aleatorios que escribí no intenten "romperlo"). ¿Cómo decidiría el programa de craqueo que había encontrado el texto en claro, dado que no sabía qué estaba buscando en primer lugar?

Sé que un humano puede ver un descifrado de prueba (suponiendo que tal cosa existe) y sé que "Ataque a medianoche" representa un mensaje real, mientras que "aroOFPS toj34ioA diy66b234" no (él espera), pero un ser humano No va a participar (dado que el proceso va a realizar cientos de intentos por segundo). Entonces, ¿el programa cracker presumiblemente tiene que tener alguna forma de saber que ha afectado a Paydirt, o al menos al potencial de Paydirt? Esto se volvería especialmente peligroso si el remitente hubiera cifrado el mensaje dos o tres veces (¿Triple DES a alguien?).

Simplemente me parece increíblemente improbable que un mensaje dado encriptado utilizando un método seguro se pueda descifrar SIEMPRE en un tiempo finito, especialmente si el atacante no sabía qué estaba buscando exactamente.

    
pregunta Cyberherbalist 19.03.2012 - 22:12
fuente

2 respuestas

3

Si tiene algún texto sin formato conocido, puede probar todas las claves y encontrar la que se desencripta al texto sin formato conocido. Podría pensar que esto nunca sucedería, pero en realidad es bastante común, debido a la estructura del protocolo.

Alternativamente, si sabe que el texto en claro tiene una estructura particular, por ejemplo, es un texto en inglés, puede hacer descifrados de prueba y conservar solo los que producen algo que se parece a un texto sensible en inglés. Por ejemplo, puede verificar que el bit alto de cada carácter esté desactivado, o usar frecuencias de letras o bigramas.

Por estas razones, sería un error pensar que esto es una barrera seria para un atacante. Si la seguridad de su sistema se basa en la suposición de que el atacante no podrá obtener texto sin formato conocido, o no podrá reconocer un descifrado válido, entonces hay algo incorrecto en el diseño de su sistema: probablemente no lo sea. Tan seguro como crees que es.

Para más detalles, aquí hay un documento de investigación sobre el tema:

David Wagner y Steven M. Bellovin. Un reconocedor de texto plano programable . 1994.

Aquí hay una cita del documento: "La mayoría de los tipos de texto pueden ser atacados de manera eficiente: normalmente [...] podemos esperar encontrar la clave de descifrado el 90% del tiempo mediante el uso de tres bloques de texto cifrado. Además, los ejecutables binarios también caer en nuestra máquina de búsqueda de clave de solo texto cifrado siempre que el atacante sepa para qué arquitectura se compilaron los binarios ".

    
respondido por el D.W. 19.03.2012 - 23:26
fuente
1

La mayoría de las veces, lo que sucede es que comienzan con un diccionario y hacen un hash de todas las palabras. Asignan ese hash a esa palabra, por lo que si tiene un hash MD5 de una palabra, busque ese hash en su base de datos y recibirá la (s) palabra (s) correspondiente (s). Al final, tu contraseña es solo un "texto".

Otra opción es que comiencen repasando cada combinación posible de letras y números, aplicando un hash y comparando ese hash con el hash de la contraseña. Las tarjetas gráficas modernas pueden adivinar hasta 800 millones de hashes por segundo. A veces almacenan los hashes en una base de datos, esto se llama una tabla de arco iris.

El problema que tendrá es que aún tardará mucho tiempo en recibir un mensaje largo, también puede obtener una colisión de hash. Pero puedes mantener cada colisión de hash, puedes revisar esto después, no habrá cientos de colisiones de hash en un solo texto.

    
respondido por el Lucas Kauffman 19.03.2012 - 22:37
fuente

Lea otras preguntas en las etiquetas