tiempo para descifrar la contraseña de cifrado de archivos, más que una simple iteración

9

A menudo he visto que toma x mucho tiempo descifrar una contraseña de cierta longitud. Pero esto parece ser la cantidad de tiempo que se tarda en recorrer todas las posibilidades. ¿Qué pasa con el tiempo que lleva comprobar cada iteración para ver si funciona? ¿No haría eso que el proceso tomara más tiempo?

Estoy más interesado en una situación en la que hay un archivo que se cree que está cifrado pero por un método desconocido. (No está tan interesado en los inicios de sesión de contraseña web). ¿Cuál es el procedimiento para probar miles de millones de contraseñas en este archivo y cómo afectaría el tiempo total de descifrado?

    
pregunta wayne_h 02.05.2011 - 17:59
fuente

3 respuestas

9

Enumerar a través de todas las contraseñas posibles, tener cada una en la memoria en algún momento, es un proceso extremadamente rápido. Se puede suponer que una PC simple podrá construir una contraseña de este tipo por ciclo de reloj y por núcleo de CPU. Por lo tanto, la PC enumerará miles de millones de contraseñas por segundo. Si las cifras que ve son sustancialmente inferiores a eso, entonces también incluyen el costo de verificación de la contraseña.

El costo de verificación de la contraseña es altamente variable. Normalmente, el sistema que quiere verificar las contraseñas almacena contraseñas con hash con sal. . Si la función de hash es SHA-1 , una CPU Intel Core2 x86, que funciona a 2.4 GHz, podrá para probar unos 12 millones de contraseñas por segundo (y por núcleo): esta es la velocidad a la que el procesador podrá aplicar la función hash en cada contraseña (la enumeración de la contraseña en sí misma es inferior al 1% de ese costo). Mi PC es de cuatro núcleos, por lo que son 48 millones por segundo. También tengo una tarjeta gráfica Nvidia no muy mala que puede hacer hashing de contraseñas, en realidad 160 millones por segundo con un simple SHA-1 en bruto. A esa velocidad, todas las contraseñas de 8 caracteres (con letras mayúsculas y minúsculas y dígitos) se comprueban aproximadamente quince días.

Los buenos esquemas de almacenamiento de contraseñas utilizan hashes iterativos o concatenados, en los que la contraseña se oculta miles de veces: esto hace que la verificación de la contraseña sea miles de veces más lenta, lo que no implica una ralentización perceptible para el usuario, pero hace que la tarea sea mucho más difícil (a saber, , miles de veces mucho más difícil) para el atacante.

    
respondido por el Thomas Pornin 02.05.2011 - 20:13
fuente
6

Sí, también es un factor importante . Hacer que consuma recursos para verificar la corrección de la contraseña es al menos una forma de hacerlo más difícil para el atacante . Eso es exactamente lo que KeePass trata de proteger contra ataques de diccionario .

Pero el problema es que, basado únicamente en esta medida, usted cuenta con el hecho de que el atacante no cambiará a una computadora / máquina de craqueo mucho más rápida.

Puede ser de gran ayuda si puedes forzar algunos límites externos a este proceso. De hecho, la tasa que limita la comprobación de su contraseña es una buena solución si es aplicable. Normalmente, obtiene 3 intentos de "adivinar" la contraseña de su cuenta bancaria y está bloqueado por algún tiempo o por tiempo indefinido. Intenta con fuerza bruta esto.

    
respondido por el Karol J. Piczak 02.05.2011 - 19:03
fuente
6

Si respondo correctamente a tu pregunta, se trata de forzar una contraseña utilizada para el cifrado de archivos, en lugar de descifrar una contraseña en una colección estándar de contraseñas con hash. Y es posible que ni siquiera sepa el formato del archivo cifrado.

Por lo tanto, está relacionado con el concepto de distancia de Unicity - Wikipedia , y está estrechamente relacionado con la pregunta anterior aquí Si alguien rompe el cifrado, ¿cómo saben que están ¿exitoso? - Seguridad de TI .

Sospecho que el tiempo necesario para verificar el éxito de una contraseña dada suele ser muy rápido para la mayoría de los archivos con formatos de datos comunes. Pero en el otro extremo del espectro, si el archivo se elige cuidadosamente para que sea muy aleatorio (por ejemplo, altamente comprimido y eliminado de los encabezados y metadatos típicos), de hecho puede ser arbitrariamente difícil verificar cada contraseña.

    
respondido por el nealmcb 02.05.2011 - 21:08
fuente

Lea otras preguntas en las etiquetas