Con fuerza bruta, ¿cómo sabemos si encontramos la llave?

Gracias por el A2A

Esa es una muy buena pregunta, una que me hice hace muchos años. La fuerza bruta significa ir secuencialmente a través de un conjunto de datos de una manera conocida para no omitir ninguna posibilidad, y luego probar cada pieza de datos para ver si ha encontrado la correcta.

El método de fuerza bruta del pobre simplemente proporciona la siguiente contraseña al sistema y verifica la respuesta del sistema para ver si funcionó. Y en un sistema de cifrado, la clave es la contraseña unidireccional, no solo dos veces, sino CIENTOS o MIL veces. El resultado de ese hash de un solo paso múltiple, es la clave que luego se utiliza para desencriptar los datos.

La contraseña en sí NO SE UTILIZA para cifrar datos, la contraseña NO es la clave.

¿Cuántas veces se hace hash? Tendría que aplicar ingeniería inversa al sistema o consultar su documentación para determinarlo. Por ejemplo, puede ser un número estático integrado en el software, o podría ser un valor relacionado con la contraseña misma. Por ejemplo, hash la contraseña 1024 veces, luego toma los 10 primeros bits de ese hash y continúa hachándola tantas veces.

Entonces, la siguiente pregunta sería, ¿por qué no omitir la fase de contraseña y simplemente forzar la clave con la fuerza bruta? Después de todo, una clave SHA-256 tiene solo 256 bits de longitud. Supongo que esto es lo que quieres decir en tu pregunta. Bueno, una de las formas en que el software de cifrado descubre que tiene la clave correcta es si puede usar la clave para recuperar la contraseña original o un hash derivado de esa contraseña. Dado que es un hash unidireccional, si tiene la clave, deberá poder derivar la contraseña original. Como es un hash unidireccional, no puedes retroceder. Por lo tanto, verificar que tiene la Clave correcta (si adivina claves aleatorias) crearía el escenario exacto del que está hablando. No sabremos si ha encontrado los datos sin cifrar correctamente o no. De hecho, puede llevar más tiempo validar si esa clave es la correcta o no, entonces sería hash una contraseña.

Es por eso que generalmente fuerza la contraseña, y no la clave. A menos que haya realizado una ingeniería inversa del sistema y sepa cómo validar la clave, más rápido de lo que se necesita para generar la clave a partir de la contraseña, mediante el uso de los hashes múltiples de una vía.

TL; DR: por lo general, la solución es difícil de encontrar pero fácil de verificar.

En estos días, la técnica más común es RSA con diferencia. (Debe quedar fuera de servicio si Quantumcomputing progresa más)

Simplificando RSA en bastantes niveles, vemos que es un método de cifrado basado en un número N que es la multiplicación de 2 primos grandes. Llamemos a estos P y Q, estos se conocen como parte de una llamada clave privada.

En RSA, la idea es que N se pueda distribuir. Esto se conoce como una clave pública y está disponible para todos.

Conocer las claves privadas le permite descifrar fácilmente cualquier mensaje codificado con la clave pública.

Sin embargo, dada solo la clave piblic, N, es muy difícil descubrir cuáles eran las P y Q originales, que es lo que necesita para descifrar el mensaje.

Ahora a la parte de verificación:

Digamos que encontramos una solución usando la fuerza bruta, ¡es muy fácil de verificar! Simplemente necesitamos 2 números X e Y que multiplicados juntos hacen N. (¡lo sabemos porque es público!)

He omitido algunos niveles de complejidad en RSA real, pero espero que esto ayude a explicar el núcleo. 😉

Editar: Tenga en cuenta que suponemos que sabemos qué protocolo se utiliza. (en general, esto se puede suponer, ya que si no lo sabemos, ¿cómo puede saberlo el receptor previsto?)

Una metodología de fuerza bruta es exactamente como la describiste. Intenta todas las combinaciones posibles de letras, dígitos y símbolos hasta llegar a la combinación correcta.

Para responder a su pregunta, el archivo o cuenta o lo que sea que esté tratando de ver cambiará de estado.

Si, por ejemplo, tiene una cerradura simple de 3 dígitos (similar a la que tendría en un candado para una bolsa), entonces, con el tiempo suficiente, podría romper la combinación en la cerradura de la bolsa y ver qué hay dentro.

¿Cómo sabes que tienes la combinación correcta? El candado se desbloqueará y le dará acceso a lo que hay dentro de la bolsa.

Ahora, ¿qué haces si dentro de la bolsa encuentras una caja de seguridad y un gran juego de llaves en un llavero?

Debe ordenar las claves, una por una, probando cada una por separado hasta encontrar la clave correcta.

Y si el propietario de la bolsa / caja o archivo cifrado sabía que iba a ser interceptado o forzado. Es posible que hayan enviado la clave correcta por separado (por correo) y hayan perdido el tiempo probando todas las claves hasta que se dé cuenta de que ninguna de ellas encaja en su caja.

Desde el punto de vista de la seguridad, esto es excelente porque los piratas informáticos y los ciberdelincuentes también son personas ocupadas. Como cualquier criminal, por ejemplo, un ladrón buscará el objetivo más fácil que pueda encontrar. Una casa con una ventana abierta, sin mascotas, sin sistema de alarma en lugar de intentar robar de una casa que tiene cerrojos en todas las puertas y ventanas, un perro feroz, un sistema de alarma, etc. Esto no quiere decir que sea imposible irrumpir en esta casa solo porque es más difícil y requiere más tiempo. Del mismo modo, los piratas informáticos no tienen tiempo para intentar descifrar el mismo archivo dos veces, por lo que una buena contraseña segura en su capa externa de cifrado es la mejor defensa contra los ataques de fuerza bruta.

Si conoce el idioma del texto claro y tiene un corpus lo suficientemente grande, entonces es relativamente fácil hacer un análisis automatizado del candidato de texto claro y reconocerlo por el uso de palabras.

Otra alternativa es tener una idea del tema. Esto se usó, por ejemplo, en Bletchly, ya que el texto claro no era directamente alemán, sino que se usaban muchas abreviaturas. Reconocieron, por ejemplo, que los U-boats enviaban regularmente informes meteorológicos que utilizaban un vocabulario de abreviaturas bastante pequeño. Tenga en cuenta que el tiempo de guerra (> 3 rotores) Enigma nunca se rompió en el sentido estricto de la palabra. Utilizó esencialmente la fuerza bruta con muchas reducciones debido a las técnicas descubiertas por el equipo polaco original que rompió el Enigma de 3 rotores junto con técnicas adicionales. Las Bombas no eran computadoras, eran emuladores de Enigma múltiple. Como Enigma es un cifrado simétrico, las cunas se cifrarían con la configuración de prueba y luego se buscarían coincidencias en el texto cifrado.

Es mucho más difícil cuando no tienes ninguno de esos. Esta es la razón por la cual descifrar el Lineal B fue un logro tan grande por parte de Ventris y Chandwick (luego vino la decepción: fueron principalmente registros de desembolsos de bienes). Su guión complementario, Lineal A, no ha sido descifrado hasta el día de hoy.

Peter está en el blanco. Debes tener una manera de reconocer el texto claro o como sea la solución. Este es un problema real en un enfoque automatizado. Para frustrar el reconocimiento de palabras, puede hacer algo tan fácil como rot-13 en el texto original y luego cifrar el resultado de rot-13. El rot-13 no es un vocabulario normal y, dado que todavía parece un galimatías, un proceso automatizado no sabría que este fue el éxito. El mismo enfoque se aplica a cualquier idioma. Buena suerte tratando de encontrar esta solución, y lo mejor para ti si esta es una forma encubierta de encontrar un mejor cifrado; Este espacio de solución es bien conocido.

Estás hablando de “colisión”, una entrada diferente que produce la misma salida. ¿Cómo sabes cuál es el correcto? No lo hace a menos que haya alguna forma de saber si obtuvo resultados útiles. (IOW, si su nombre de usuario y contraseña funcionan, incluso si están equivocados pero chocaron con uno de los correctos, usted está conectado de todos modos, entonces, ¿a quién le importa? OTOH, la diferencia entre “ataque este viernes” y “ataque 2 semanas desde el viernes “es importante, y no sabrá cuál era la correcta hasta que ocurra el ataque.)