passwordsecure

Cuánto se tarda en descifrar una contraseña

Depende de tres cosas: su longitud, los caracteres que puede llevar y cómo guarda las contraseñas el servicio atacado. Esta tabla las combina, y puedes cambiar el escenario.

Actualizado el . 6 min de lectura.

La tabla

Tiempo medio que tardaría un atacante en dar con una contraseña generada al azar, según su longitud y los caracteres que puede llevar. Cambia el escenario para ver cómo se mueve todo.

Escenario de ataque

Rojo: menos de una hora. Ámbar: menos de un año. Verde: un año o más. «Más de 100 millones de años» equivale, en la práctica, a imposible.

LongitudSolo númerosMinúsculasMayúsculas y minúsculasLetras y númerosLetras, números y símbolos
6al instanteal instanteal instante1 segundo9 segundos
8al instante10 segundos44 minutos2 horas1 día
10al instante1 hora2 meses1 año51 años
1250 segundos1 mes6 siglos44 siglos5.277 siglos
141 hora1 siglo16.744 siglos179.555 siglosmás de 100 millones de años
165 días690 siglosmás de 100 millones de añosmás de 100 millones de añosmás de 100 millones de años
181 año467.074 siglosmás de 100 millones de añosmás de 100 millones de añosmás de 100 millones de años
201 siglomás de 100 millones de añosmás de 100 millones de añosmás de 100 millones de añosmás de 100 millones de años

Frases de contraseña

Para frases generadas al azar con un diccionario de 7.776 palabras, suponiendo que el atacante conoce el diccionario y el número de palabras (el peor caso):

Mismo escenario que la tabla anterior.

PalabrasTiempo medio
323 segundos
42 días
545 años
63.502 siglos
7más de 100 millones de años
8más de 100 millones de años

Una contraseña de 16 caracteres al azar ya queda en verde en los cuatro escenarios.

Generador de contraseñas

Los cuatro escenarios

En la web: 10 intentos por segundo

El atacante prueba contraseñas en la página de inicio de sesión. Es lento porque cada intento pasa por la red, y la mayoría de servicios bloquean o ralentizan tras unos cuantos fallos, así que en la realidad es aún más lento. Aquí solo caen las contraseñas muy comunes.

Hash lento: 100.000 intentos por segundo

Alguien ha robado la base de datos, pero el servicio guardaba las contraseñas con un algoritmo diseñado para ser lento, como bcrypt, scrypt o Argon2. Cada intento cuesta mucho cálculo. Es lo que debería hacer cualquier servicio bien hecho.

Hash rápido con una tarjeta gráfica: 10.000 millones por segundo

La base de datos robada usaba un hash rápido (SHA-1, SHA-256 sin más). Una sola tarjeta gráfica de gama alta prueba miles de millones por segundo. Es el escenario que usamos en nuestro generador y en el comprobador: realista y algo pesimista.

Hash rápido con 12 tarjetas: un billón por segundo

Un equipo dedicado con varias tarjetas gráficas atacando hashes muy rápidos como MD5 o NTLM (el de Windows). Sigue habiendo servicios antiguos que guardan así las contraseñas.

Cómo se calcula

Si una contraseña tiene L caracteres y cada uno se elige al azar entre N posibles, hay NL combinaciones. De media, el atacante acierta tras probar la mitad:

tiempo medio = NL ÷ 2 ÷ intentos por segundo

Por ejemplo, 12 caracteres con letras y números: 6212 ≈ 3,2 × 1021 combinaciones. A 10.000 millones por segundo, la mitad lleva 1,6 × 1011 segundos, unos 5.100 años.

En la tabla esa casilla dice 44 siglos, algo menos, porque cuando hay varios tipos de caracteres contamos solo las contraseñas que llevan al menos uno de cada tipo, como hace nuestro generador. Es un ajuste pequeño, pero preferimos no redondear a favor. El mismo cálculo, expresado en bits, está en la guía de entropía de una contraseña.

Lo que la tabla no cuenta

Solo vale para contraseñas aleatorias. Una contraseña elegida por una persona no se ataca probando todas las combinaciones, sino empezando por palabras, nombres, fechas y contraseñas filtradas. Valencia1985! tiene 13 caracteres de los cuatro tipos y, según la tabla, debería aguantar siglos; en la realidad cae en minutos. Para esas usa el comprobador, que busca esos patrones.

Una contraseña filtrada se descifra al instante, mida lo que mida, porque ya está en las listas que se prueban primero.

El hardware mejora. Las tarjetas gráficas ganan velocidad cada pocos años, así que conviene dejar margen. Con 16 caracteres al azar lo tienes de sobra.

Preguntas frecuentes

¿Cuánto se tarda en descifrar una contraseña de 8 caracteres?

Si es aleatoria y lleva los cuatro tipos de caracteres, alrededor de un día de media con una tarjeta gráfica contra un hash rápido, y unos minutos con un equipo de varias tarjetas contra MD5 o NTLM. Si es una palabra con un número al final, segundos. Ocho caracteres ya no son suficientes.

¿Y una de 12 caracteres?

Aleatoria y con todos los tipos, unos 78 bits: miles de siglos incluso contra un hash rápido. Es un mínimo razonable si además usas doble factor. Si la eliges tú, el tiempo real depende de lo previsible que sea, no de la tabla.

¿Por qué otras tablas dan tiempos distintos?

Porque suponen otra velocidad de ataque. Las que circulan por redes sociales suelen suponer un hash lento como bcrypt y salen tiempos mucho más largos. Las de seguridad ofensiva suponen hashes rápidos y salen más cortos. Por eso aquí puedes elegir el escenario: la cifra solo tiene sentido junto a su suposición.

¿El tiempo de la tabla es el máximo o la media?

La media: la mitad del total de combinaciones. Con suerte, el atacante puede acertar antes; con mala suerte, tardar el doble.

Compartir esta página