También disponible en: English · Português · Français · العربية
Comprobador de seguridad de contraseñas
Estima cuánto aguantaría una contraseña ante un ataque real de adivinación, y enseña cuánto la sobrevaloran los medidores habituales.
Qué es un comprobador de seguridad de contraseñas
Toma una contraseña y estima cuántos intentos necesitaría un atacante. Casi todos lo hacen contando caracteres y tipos de carácter, y por eso premian una mayúscula y un símbolo y te dicen que P@$$w0rd1! es segura.
Este puntúa como funciona de verdad la adivinación: busca lo que un conjunto de reglas de descifrado prueba primero —palabras del diccionario, sustituciones leet, recorridos de teclado, años, secuencias— y valora tu contraseña por lo que cuesta todo eso. Después te enseña, al lado, lo que habría afirmado un medidor que cuenta caracteres.
Tu contraseña no sale de esta página. No hay peticiones, ni registros, ni servidor: abre la pestaña de red del navegador y míralo, o desconéctate de internet y sigue usándola. Es el único diseño admisible para una herramienta así.
Cómo usar el comprobador
- Escribe o pega una contraseña. Se analiza mientras escribes, en tu propia máquina. Usa el botón de mostrar y ocultar si no estás a solas.
- Elige un atacante. Formulario con límite de intentos, formulario sin límite, una base de datos robada con hash lento o con hash rápido. La respuesta se mueve once órdenes de magnitud entre esos cuatro, y por eso se ofrecen.
- Lee la tabla de patrones. Enumera lo que un atacante reconocería en tu contraseña y lo que cuesta adivinar cada pieza. Si tu contraseña es una palabra con adornos, aquí se ve.
Las reglas que imponen casi todos los medidores las retiró el estándar que las inventó
La publicación especial NIST 800-63B es el documento detrás de casi toda política corporativa de contraseñas. Su revisión actual es inequívoca, y merece citarse en vez de parafrasearse. Sobre los tipos de carácter: los verificadores «SHALL NOT impose other composition rules (e.g., requiring mixtures of different character types) for passwords», es decir, no deben imponer reglas de composición. Sobre la caducidad: no deben exigir que se cambien las contraseñas periódicamente. Ambas son prohibiciones, no sugerencias, y ambas son lo contrario de lo que hace un formulario de registro típico.
Lo que sí exige es longitud. Una contraseña usada como factor único «SHALL» tener un mínimo de 15 caracteres, no los 8 que casi todos los medidores tratan como el listón. Con un segundo factor el mínimo baja a 8. También exige comprobar la contraseña contra una lista de contraseñas filtradas, que es el único requisito que esta herramienta deliberadamente no implementa, por los motivos que están en las limitaciones.
La aritmética que hay detrás de esa preferencia no está reñida. Ocho caracteres tomados de los 95 imprimibles de ASCII dan 6,63e15 posibilidades: 52,6 bits. Quince caracteres de solo minúsculas dan 1,68e21, o 70,5 bits. La contraseña que incumple todas las reglas de composición tiene un espacio de búsqueda 252 820 veces mayor que la que las cumple todas.
Y las reglas de composición son peores que inútiles, porque hay una forma evidente de satisfacerlas. Coge una palabra común, ponle mayúscula inicial, cambia algunas letras por símbolos parecidos y añade al final una cifra y un signo de puntuación. Pasamos esa receta por las 10 000 palabras inglesas más comunes: el 99,2 % de los resultados satisface las cuatro clases de carácter. La receta entera —cada palabra, ambas capitalizaciones, en leet o no, cada cifra o año final, cada símbolo— abarca 29 millones de posibilidades, unos 24,8 bits. Un medidor que cuenta caracteres puntúa P@$$w0rd1! con 65,7 bits. Está exagerando la dificultad por un factor de dos billones.
Una cosa más que conviene decir, porque va contra un consejo que este sitio repetiría de otro modo. La famosa frase de cuatro palabras al azar son 51,7 bits cuando las palabras salen de la lista de 7776 que recomiendan casi todas las guías: muy poco menos que aquellos ocho caracteres de ASCII imprimible. Cuatro palabras era un buen consejo cuando se escribió y hoy se queda justo. Cinco palabras son 64,6 bits, seis son 77,5, y la distancia se abre deprisa. Si te llevas un número de esta página, que sea cinco en lugar de cuatro.
Limitaciones honestas
La estimación es un techo de debilidad, no un certificado de fortaleza. Si la herramienta encuentra un patrón, eso demuestra que tu contraseña no puede ser más fuerte que el patrón, y esa dirección es sólida. Si no encuentra nada, solo demuestra que esta herramienta no reconoció nada, que es una afirmación mucho más floja. Fíate de una mala puntuación y trata una buena como ausencia de pruebas.
El vocabulario son las 5000 palabras más frecuentes de doce libros de dominio público, y es el corpus equivocado de una forma concreta que conviene declarar: las palabras que la gente pone de verdad en sus contraseñas no son las que usaban los novelistas victorianos. «Password», «admin», «letmein» y «sunshine» faltan por completo, mientras que «monkey» y «dragon» están porque aparecen en las novelas. La lista de un atacante real empieza justo por las palabras que a esta le faltan, así que el número real de intentos para una contraseña común es menor que el que ves aquí.
La comprobación contra listas de filtraciones que exige el estándar no está implementada, y es un rechazo deliberado y no un olvido. Comparar contra contraseñas filtradas conocidas requiere o una descarga de cientos de megabytes o una petición al servidor de otra persona. Existe un protocolo bien diseñado para lo segundo —envías un prefijo corto de un hash y nunca la contraseña— pero sigue siendo una petición de red desde una página que promete que no hay ninguna. Haz esa comprobación aparte, con una herramienta que sea honesta sobre la petición.
Los tiempos de rotura dependen por completo de la velocidad del ataque, y por eso esta página te hace elegir una en lugar de suponerla en silencio. Las cuatro velocidades que ofrece son cifras de orden de magnitud para el escenario indicado, no medidas de ningún sistema concreto, y la velocidad real depende del hash que eligiera el sitio, del hardware y de si el atacante tiene siquiera la base de datos. Un medidor que imprime un tiempo sin decir su velocidad no te está diciendo nada comprobable.
El motor lleva 48 comprobaciones. La principal es la cota: varios miles de contraseñas construidas con la receta de arriba deben puntuar todas como débiles, junto a un control que confirma que las contraseñas realmente aleatorias de la misma longitud no lo hacen. Así se cazaron dos errores reales: la decodificación leet es de uno a muchos y una tabla de valor único hacía que W1th1! nunca resolviera a «with», y el hueco del corpus de arriba, que ahora está aseverado para que no se pierda de vista.
¿Por qué es gratis?
Cotejar patrones contra una lista de palabras es trabajo que tu propia máquina hace en un milisegundo. No hay servidor que pagar, y por eso tampoco hay cuenta ni nada que subir: los dos hechos son el mismo hecho.
Si lo que quieres es una contraseña y no un veredicto sobre una, el generador de contraseñas de este sitio las crea. Su cifra de entropía es exacta donde la de esta página es una cota, y la diferencia es instructiva: la fuerza de una contraseña generada se conoce por construcción, mientras que la de una memorizada solo puede estimarse desde fuera.