Desde entonces, pasé a frases de contraseña de estilo XCKD para la mayoría de mis contraseñas. Aquí hay un trazador de líneas de commandlinefu para generar una frase de contraseña:
shuf -n4 /usr/share/dict/words | tr -d '\n'
2020:publiqué esta respuesta en 2011. En los años que han pasado, la cara de la seguridad cibernética y las demandas han cambiado rápida y enormemente. Como ha señalado anarcat, es posible que pwgen no sea (o ya no sea) adecuado para proteger los sistemas de alta seguridad. En su artículo, se propone describir los detalles técnicos sobre cómo pwgen puede, en algunas circunstancias, utilizar métodos inseguros de derivación de contraseñas a partir de la entropía disponible. Aunque ya no creo en generar contraseñas para luego tratar de recordarlas yo mismo, no tengo la aptitud técnica para validar, y mucho menos dar fe del contenido del artículo citado, así que léalo y saque sus propias conclusiones. Habiendo dicho eso, estoy convencido de que pwgen será suficiente para sistemas de baja seguridad donde el ataque es muy poco probable.
Es posible que desee consultar el pwgen
solicitud. Sé que está disponible en los repositorios de Ubuntu, Fedora, Debian y Suse.
Desde la página del manual:
El programa pwgen genera contraseñas que están diseñadas para ser fácilmente memorizadas por humanos, mientras son lo más seguras posible. Las contraseñas memorables para humanos nunca serán tan seguras como las contraseñas completamente aleatorias. En particular, las contraseñas generadas por pwgen sin la opción - no deben usarse en lugares donde la contraseña podría ser atacada a través de un ataque de fuerza bruta fuera de línea. Por otro lado, las contraseñas generadas completamente al azar tienden a escribirse y están sujetas a ser comprometidas de esa manera.
El programa pwgen está diseñado para usarse tanto de forma interactiva como en shellscripts. Por lo tanto, su comportamiento predeterminado difiere dependiendo de si la salida estándar es un dispositivo tty o una tubería a otro programa. Utilizado de manera interactiva, pwgen mostrará una pantalla llena de contraseñas, lo que le permitirá al usuario elegir una única contraseña y luego borrar rápidamente la pantalla. Esto evita que alguien pueda "navegar por el hombro" por la contraseña elegida por el usuario.
Recomendaría a las personas que dejen de usar pwgen:su principal interés era generar "contraseñas recordables por humanos", pero mostró múltiples vulnerabilidades al hacer exactamente eso. Y usarlo para generar cadenas completamente aleatorias tampoco es tan útil.
Escribí un artículo detallado sobre ese mismo tema, pero básicamente, la esencia es usar el programa diceware (o, si te gustan los dados, el sistema diceware real) o xkcdpass. Para generar contraseñas fáciles de recordar, generalmente uso diceware con el siguiente archivo de configuración:
[diceware]
caps = off
delimiter = "-"
wordlist = en_eff
Ejemplos:
$ diceware
turkey-eligibly-underwire-recite-lifter-wasp
$ diceware
lend-rubdown-cornflake-tint-shawl-ozone
$ diceware
syndrome-ramp-cresting-resolved-flinch-veneering
$ diceware
alto-badass-eclipse-surplus-rudder-quit
Desactivo las mayúsculas y los espacios porque generan distintos ruidos audibles que un atacante podría aprovechar. El -
delimitador es un mal menor:sería mejor no usar ningún separador y el en_eff
wordlist está especialmente diseñado para ese propósito. Pero me resulta más fácil comunicarme y compartir contraseñas cuando tienen algunas separador.
Para generar una contraseña completamente aleatoria, utilizo la siguiente función de shell:
# secure password generator or, as dkg puts it:
# high-entropy compact printable/transferable string generator
# a password generator would be pwqgen or diceware
pwg() {
ENTROPY=${1:-20} # in bytes
# strip possible newlines if output is wrapped and trailing = signs as they add nothing to the password's entropy
head -c $ENTROPY /dev/random | base64 | tr -d '\n='
echo
}
Menciono esto porque creo que es importante memorizar menos contraseñas y, en su lugar, confíe en un administrador de contraseñas para almacenar cadenas grandes que son difíciles de adivinar. En el artículo mencionado anteriormente y en mi revisión de administradores de contraseñas se explican más detalles sobre la razón de ser de esas elecciones.