Cuando hablamos de la fortaleza de la contraseña, estamos hablando de la resistencia de una contraseña a los ataques de "fuerza bruta" y "diccionario".
Un ataque de fuerza bruta es simple. El atacante prueba cada contraseña posible una tras otra hasta que encuentra la correcta. Hay dos defensas contra este ataque.
-
Primero, hace que sea difícil (o imposible) que el atacante pruebe si la contraseña es correcta o no. Este es el mejor enfoque pero no siempre es posible.
-
En segundo lugar, debes hacer que el ataque de fuerza bruta tome mucho, mucho tiempo, generalmente asegurando que hay una cantidad muy, muy grande de contraseñas posibles para probar. Es en esta segunda defensa que la fuerza de la contraseña juega un papel importante; puede elegir una contraseña donde haya tantas contraseñas posibles para verificar que un ataque de fuerza bruta tarde cien años en funcionar. Esto se llama una contraseña de "alta entropía". Para ello, elija una contraseña que sea larga y compleja. Complejo significa que tiene muchos caracteres diferentes: mayúsculas y minúsculas, números y puntuación.
Un ataque de diccionario también es simple. En el mundo real, las personas tienen que recordar contraseñas, por lo que casi nunca eligen una contraseña verdaderamente aleatoria. En su lugar, eligen algo que tiene significado: una palabra, el cumpleaños de su hijo o el nombre de su perro, algo así. Entonces, antes de comenzar con la fuerza bruta, el atacante toma unos segundos para probar todas las palabras, todos los nombres de los perros, todos los cumpleaños y todos los números de teléfono. (Y con las computadoras modernas realmente toma solo unos segundos intentar cada palabra).
Las personas intentan evitar los ataques de diccionario pero mantienen las contraseñas memorables haciendo cambios simples. Esto a veces se llama "munging". Por ejemplo, alguien podría probar "leet speak" y cambiar "e" a "3". Por supuesto, si esto se vuelve popular, el atacante simplemente tomará su diccionario, lo convertirá en leet y probará todo eso.
Así que ahora podemos intentar responder a tu pregunta, que es básicamente "¿cuál de estos enfoques de munging hace que la contraseña sea más fuerte?"
Contra un ataque de fuerza bruta pura, solo dos cosas importan. Longitud y complejidad. Ponga mayúsculas y minúsculas y los números y la puntuación en su contraseña, y luego hágala tan larga como pueda administrar.
Contra un ataque de diccionario, eres vulnerable si el atacante piensa usar un diccionario con tu contraseña. Entonces, si ellos adivinan tu truco, romperán tu contraseña. Si no lo hacen, tienen que volver a la fuerza bruta.
Entonces, todo se reduce a esto: ¿un atacante adivinará tu truco y lo intentará? Y eso nos lleva a la respuesta estándar a cada pregunta de seguridad: depende del atacante.
Si el atacante desea específicamente tu cuenta y tiene los recursos, entonces sí, podrían pensar en probar alguno de los trucos que mencionas. No son tan obvios como Leet, o agregar dos dígitos al final de una palabra, pero tampoco son muy complicados, ¡y por supuesto que ahora se han sugerido en el intercambio de la pila de seguridad!
Por otro lado, si un atacante solo quiere comprometer cualquier cuenta en un servidor, es probable que primero encuentre a alguien con una contraseña peor que la suya. (En la pérdida de la contraseña de MySpace de 2006, el 4% de las contraseñas eran palabras de diccionario directas, y se habrían roto en medio segundo). En ese caso, elegiría intercalar un número en lugar de repetir otra palabra, porque aumenta la entropía. un poco más, pero no hay mucho en ello.
Para mí, me gustan las frases de contraseña, en las que seleccionas cuatro o cinco palabras completamente al azar y las encadenas, con un número introducido para aumentar la entropía. Los ataques de diccionario en esos toman casi tanto tiempo como lo hacen los ataques de fuerza bruta, pero aún son fáciles de recordar.
( Todos juntos ahora, y sin echar un vistazo : CorrectHorseBatteryStaple !)