Los medidores de seguridad de contraseña están universalmente limitados por la cantidad de reglas y búsquedas puestas en comparación con la cantidad de reglas y búsquedas puestas en herramientas de ataque, particularmente de la variedad de craqueo fuera de línea como oclHashcat .
Los medidores de seguridad de contraseñas más comunes utilizan un algoritmo simplista que combina la longitud y cierta aproximación del espacio de teclas para dar su lectura. Por ejemplo, algunos considerarán una contraseña de 11 caracteres con mayúsculas, minúsculas, números y símbolos como "Muy fuerte".
P @ $$ w0rd123
Si piensa que la "contraseña" con un capital inicial, un poco leet-speak común, y un 123 al final es una contraseña "muy fuerte", le sugiero que lea sobre ataques basados en reglas . Tenga en cuenta que algunos de los conjuntos de reglas que vienen con Hashcat tienen más de treinta mil reglas, y los conjuntos de reglas se usan comúnmente en combinación con diccionarios de decenas de miles a miles de millones de palabras (esencialmente uniones cartesianas: para cada palabra del diccionario, aplique todas las reglas en el conjunto de reglas elegido), dependiendo de qué tan bueno fue el hash y cuánto invirtió el atacante en las GPU.
Algunos medidores de seguridad de contraseñas incluyen un diccionario de pequeño a mediano y un pequeño conjunto de reglas (que son mucho más eficientes porque operan con una contraseña de texto simple), como > zxcvbn ; sin embargo, todavía son limitados en comparación con lo que es un buen atacante (como un equipo competitivo de craqueo en un evento o una investigación de seguridad, sin contar a los actores realmente malos, usando la lista de contraseñas filtradas).
El resumen es:
Si un medidor de seguridad de contraseña dice que su contraseña es débil, su contraseña es débil (o el medidor está completamente roto).
Si un medidor de seguridad de contraseña dice que su contraseña es segura, ignórela; asume que no sabe nada.
Las contraseñas largas y puramente aleatorias son tan fuertes como puedes obtener; Subido el mínimo de 14 caracteres, y eso es solo para una frase de contraseña generada de forma puramente aleatoria.
Las combinaciones aleatorias de palabras pueden estar bien, pero "la grapa correcta de la batería del caballo" como ejemplo específico es bastante mala; tres de las palabras están en una lista común de palabras del Top 5000 en inglés, y la última todavía está en el diccionario phpbb y El diccionario pequeño inglés americano de Ubuntu. Más análisis en mi respuesta si debo rechazar contraseñas obviamente pobres , pero se reduce al hecho de que un atacante usa un pequeño subconjunto de palabras en inglés encontraría este ejemplo, y muchos ejemplos que los humanos elegirían por su cuenta, sin necesidad de buscar exhaustivamente en cualquier lugar cerca del espacio de teclas en inglés de la combinación de 4 palabras.
Como mínimo, elija al azar solo palabras más largas, después de eliminar también las palabras comunes.
- Por ejemplo, tome el diccionario de locos inglés americano de Ubuntu
- luego elimina todas las palabras de longitud 7
- luego elimine todas las palabras restantes que también se encuentran en el pequeño diccionario de inglés americano
- luego usa un generador de números aleatorios para seleccionar líneas y al azar, y usa cualquier palabra que esté en la línea
- Aún mejor, coloca algunos separadores aleatorios únicos entre ellos también
La falla en la grapa correcta de la batería del caballo y la falla en la mayoría de los estimadores de fuerza de contraseña es la misma; hacen matemáticas asumiendo que se genera al azar, y sin ayuda, muy pocos humanos se acercan. Los atacantes lo saben, y trabajan con él y los resultados de lo que los humanos han elegido antes de que ya haya sido resquebrajado (o se haya almacenado en texto sin formato).