Comparativa de tiempos de averiguación de claves mediante ataque de fuerza bruta

Ayer vi este interesante artículo en Barapunto. Habla sobre el tiempo de recuperación de una clave, en función de la potencia de cálculo y de la complejidad de la misma.

Barrapunto enlaza a la fuente original, un artículo que se llama Datos de seguridad en contraseñas. En este texto hay diversas tablas que muestran los tiempos aproximados de averiguación de una clave empleando un ataque de fuerza bruta, en función, tal y como hemos comentado, de la capacidad de cálculo que tengamos y sobre todo, de la complejidad de la clave que queremos romper. Ni que decir tiene que son datos APROXIMADOS, y no exactos.

Las claves son más complejas según aumente su longitud y la variación de caracteres empleados. Una clave poco compleja es hola, y un ejemplo de clave muy compleja sería es 4Ref34!»)»$(%CFdsvcsdCsdcsadsdfew$·%4fewf4%$&ew.

El artículo distingue entre estos tipos de potencia de cálculo:

A. 10,000 Passwords/seg
Ejemplo: Recuperación de contraseña de MS Office en un Pentium 100

B. 100,000 Passwords/seg
Ejemplo: Recuperación de contraseña Microsoft (Archivos .PWL)en un Pentium 100

C. 1,000,000 Passwords/seg
Ejemplo: Recuperación de contraseña de un archivo comprimido en ZIP o ARJ Pentium 100

D. 10,000,000 Passwords/seg
Ejemplo: Recuperación de cualquiera de las contraseñas anteriores con un PC de Gama Alta (+2Gh)

E. 100,000,000 Passwords/seg
Ejemplo: Recuperación de una contraseña con un cluster de microprocesadores o con multiples Pcs trabajando de manera simultánea.

F. 1,000,000,000 Passwords/seg
Ejemplo: Recuperación de una contraseña utilizando una supercomputadora o una red de ordenadores interconectados a gran escala, por ejemplo sitrubed.net: fundado en 1997 y con un poder de computo equivalente a más de 160000 computadoras PII 266MHz trabajando 24 horas al día, 7 días a la semana, 365 días al año!

Veamos un ejemplo. Imaginaos que la clave que queremos romper es sergio:

  • Número de combinaciones posibles: 308.9 millones
  • Tiempo de averiguación si empleamos un ataque clase A: 8 horas y media
  • Tiempo de averiguación si empleamos un ataque clase B: 51 minutos y medio
  • Tiempo de averiguación si empleamos un ataque clase C: 5 minutos
  • Tiempo de averiguación si empleamos un ataque clase D: 30 segundos
  • Tiempo de averiguación si empleamos un ataque clase E: 3 segundos
  • Tiempo de averiguación si empleamos un ataque clase F: Inmediato

Como se puede observar, averiguar esa clave es cuestión de tiempo. Veamos que pasa, si en vez de sergio, empleo la clave S33r&Gio:

  • Número de combinaciones posibles: 72.000 billones
  • Tiempo de averiguación si empleamos un ataque clase A: 22.875 años
  • Tiempo de averiguación si empleamos un ataque clase B: 2.287 años
  • Tiempo de averiguación si empleamos un ataque clase C: 229 años
  • Tiempo de averiguación si empleamos un ataque clase D: 23 años
  • Tiempo de averiguación si empleamos un ataque clase E: 2 años y 3 meses
  • Tiempo de averiguación si empleamos un ataque clase F: 83 días y medio

Consejo de amigo: ponedle a los atacantes las cosas difíciles. Emplear claves robustas es siempre la primera línea de nuestra defensa :)

5 comentarios sobre “Comparativa de tiempos de averiguación de claves mediante ataque de fuerza bruta

  1. Cuando dices que el número de combinaciones posibles para la contraseña «Sergio» es de 308.9 millones, ¿en qué te basas?

    Para «calcular» el número de combinaciones cuando eres un «usuario malévolo», hace falta definir una serie de premisas, como la longitud de la contraseña y el juego de caracteres. Por ejemplo, si espero que la longitud de la clave sea de 6 caracteres y que cada elemento se tome de un cojunto de diez (la clave es una secuencia de dígitos), el número máximo de combinaciones es de 10^6 ó 1.000.000. En el caso medio, necesitaré probar 500.000 distintas combinaciones, mientras que en el peor de los casos necesitaré una búsqueda exhaustiva sobre un total de 1.000.000 elementos.

    Por ello, a priori, un «usuario malévolo» no puede conocer con certeza el número posible de combinaciones, sino fijar una expectativa, que puede o no cumplirse.

  2. Felipe,

    Tomé ese dato de la fuente original. Para el caso de una clave en la que se admiten los caracteres alfa minúscula, abcdefghijklmnopqrstuvwxyz.

    Imagino que la cuenta sale de hacer una combinación de 26 (m) elementos tomados de 6 en 6 (n), lo que resulta en:

    CRm,n = (m+n+1)!/(n!(m-1)!)

    CR(26,6) = (26+6+1)!/(6!* 25!)

    No he repasado las cuentas y no tengo mi HP-48, vieja compañera de faenas de la Uni, para echarte la cuenta en un segundito, pero la cuenta intuyo que es esa. Si es una errata, disculpadme.

    Como nosotros sabemos la clave a romper, sergio (combinación de 6 elementos sin repetición, tomados de 6 en 6), nuestra expectativa es mucho menor, pero claro, eso un atacante no lo sabe, como tampoco sabe la longitud que hemos empleado. Por eso sus expectativas son mucho mayores :)

    Son solo datos aproximados, la idea de la noticia es hacer ver que fortalecer las claves eleva nuestra seguridad exponencialmente :)

    Saludos,

  3. quiero saber como abrir una maleta que tiene tres dijitos en la cerradura, he intentado abrirla bastantes veces pero no se y el problema es que no me se la clave

  4. Erlin,

    Lo que tienes que hacer es ejecutar un ataque de fuerza bruta sobre la maleta. Tres dígitos del 0 al 9 implican 1000 combinaciones posibles. Pruebas el 000, luego el 001, así hasta que llegues al 999. Ideal para un domingo tarde en el que te encuentres sin nada que hacer :)

    Aunque siempre puedes coger el martillo y liarte a golpes con el cerrojo, claro :)

  5. Tengo el candado de mi bicicleta que usa 4 dígitos de 6 números cada uno. Existe alguna herramienta en internet o algo que me pueda dar tooodas las combinaciones posibles para imprimirlas y ponerme a probar cual es la efectiva??
    Gracias!!

Comentarios cerrados.