¿Por qué la fuerza bruta de la contraseña en lugar de la clave directamente?

3

Esta respuesta en otra pregunta sobre el intercambio de seguridad por un usuario muy reputado explica por qué prefiere GnuPG sobre OpenSSL para el cifrado de archivos. Por lo que entiendo, se puede resumir así:

  

Al utilizar OpenSSL, la clave de cifrado utilizada se deriva de MD5 (contraseña + sal) con una sola iteración. Por lo tanto, para un atacante es fácil forzar la contraseña y obtener la clave de cifrado.

Mi pregunta es: ¿Por qué querría un atacante forzar la contraseña en lugar de la clave directamente? Por ejemplo, si la clave tiene una longitud de 128 bits y mi contraseña tiene una longitud de 16 caracteres (128 bits), mi (contraseña + sal) ya es más larga que la clave de cifrado. Esto significa que realmente sería más fácil forzar la clave de cifrado directamente en lugar de la contraseña y el número de iteraciones en la función de derivación de claves es irrelevante.

Pero la respuesta dada a menudo está vinculada como referencia en muchas otras preguntas similares y proviene de un usuario reputado. Entonces, ¿dónde está la falla en mi razonamiento?

    
pregunta Gradient 20.08.2017 - 23:05
fuente

1 respuesta

8

Brute forzar la clave vs brute forzar la contraseña

Fuerza bruta la clave

Para forzar la clave directamente, necesito seguir adivinando claves e intentando descifrar el archivo cifrado con él hasta que finalmente el archivo se descifre correctamente. Sin ninguna información adicional, tengo que probar los 2 128 posiblemente valores clave al azar.

En promedio, tendré que hacer 2 128 / 2 = 2 127 suposiciones. Por cierto, este es un número masivo! Reducción de física: una instrucción de ensamblaje ARM (ADD, SUB, XOR, ...) consume aproximadamente 300 pJ ~ = 3.0x10 -10 Joules por instrucción en un dispositivo integrado de bajo consumo. El sol contiene aproximadamente 1.2x10 44 Joules de combustible nuclear. Asumiendo que podríamos adivinar una clave e intentar descifrar el archivo en una sola instrucción ARM (que es bananas, estás viendo millones de instrucciones para un archivo de tamaño razonable), luego hacer este ataque de fuerza bruta requeriría consuming 2x10 < sup> 15 estrellas ! Sí, 2 127 es un número masivo . Buena suerte con ese ataque de fuerza bruta. Espero que tengas una buena tarifa eléctrica.

Brute-farsa la contraseña

La longitud de la contraseña solo es relevante en la medida en que una contraseña de 16 caracteres tenga más combinaciones posibles para adivinar que una contraseña de 8 caracteres. Si bien su contraseña de 16 caracteres puede requerir 128 bits de espacio en disco, ciertamente no es 128 bits de seguridad. Para empezar, solo hay 95 caracteres ASCII imprimibles , así que para una contraseña que solo use caracteres del teclado (sin acentos, emojis, etc.), en el mejor de los casos, está buscando las contraseñas de 16 caracteres para 16 ~ = 2 105 para adivinar. Además, sabemos que el 30% de las cuentas en Internet tienen una contraseña de las 10,000 contraseñas principales [ fuente ], por lo que la longitud es realmente irrelevante si eres uno de esos 10,000.

Poniéndolos juntos

Si se trata de un usuario de Internet aleatorio (es decir, están inventando sus contraseñas como lo hace el usuario de Internet promedio), entonces tiene un 30% de probabilidad de descifrarlas en las primeras 10.000 conjeturas. Si estoy forzando la clave directamente (sin utilizar ningún conocimiento adicional), entonces tengo una probabilidad de 0.0000000000000000000000000000000003% (3x10 -35 ) de descifrarla en las primeras 10,000 conjeturas.

Básicamente, las contraseñas son más débiles que las claves porque los cerebros humanos son estúpidos y predecibles. Si su contraseña proviene de un generador aleatorio, entonces esta es una historia completamente diferente porque en realidad es más una clave que una contraseña.

    
respondido por el Mike Ounsworth 21.08.2017 - 00:50
fuente

Lea otras preguntas en las etiquetas