Answers:
从那以后,我大部分密码都转到了XCKD风格的密码短语中。这是来自commandlinefu的1个衬里,用于生成密码:
shuf -n4 /usr/share/dict/words | tr -d '\n'
the
,me
和theme
。通常,您会希望这三个词具有同等的熵,但是在这种情况下,您无法计数,theme
因为它是其他两个词的组合。实际上,theme
实际上为密码添加了零熵。
2020年:我在2011年发布了这个答案。在过去的岁月中,网络安全的面貌和对其的要求已发生了巨大的变化。正如anarcat指出的那样,pwgen可能不(或不再)适合于保护高安全性系统。他列出了描述如何pwgen的就可以了,在某些情况下,在使用密码导出的不安全的方法,从可用熵技术细节他的文章。尽管我不再相信生成密码来尝试自己记住密码,但是我不具备验证技术的能力,更不用说保证所引用文章的内容了,因此请阅读并得出自己的结论。话虽如此,我相信pwgen将足以满足不太可能受到攻击的低安全性系统的需求。
您可能想签出该pwgen
应用程序。我知道它可以在Ubuntu,Fedora,Debian和Suse存储库中使用。
从手册页:
pwgen程序生成密码,密码旨在使人容易记住,同时又要尽可能安全。令人难忘的密码永远不会像完全完全随机的密码一样安全。特别是,pwgen生成的不带-s选项的密码不应用于可能通过离线暴力攻击来攻击密码的地方。另一方面,完全随机生成的密码容易被记录下来,并且容易受到这种方式的破坏。
pwgen程序设计为可以交互使用,也可以在shell脚本中使用。因此,其缺省行为取决于标准输出是tty设备还是通向另一个程序的管道而有所不同。交互使用时,pwgen将显示一个完整的密码屏幕,允许用户选择一个密码,然后快速擦除屏幕。这样可以防止某人能够“肩膀浏览”用户选择的密码。
apples12$/fourteen
密码。试一试。
我建议人们停止使用pwgen-它的主要兴趣是生成“人类可记忆的密码”,但这样做确实显示出多个漏洞。使用它来生成完全随机的字符串也不是那么有用。
我写了一篇关于该主题的详细文章,但是基本上,要点是使用diceware程序(或者,如果您喜欢dice,请使用实际的diceware系统)或xkcdpass。为了生成难忘的密码,我通常将diceware与以下配置文件一起使用:
[diceware]
caps = off
delimiter = "-"
wordlist = en_eff
例子:
$ 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
我关闭了上限和空格,因为它们会产生明显的听觉噪声,攻击者可以利用这些噪声。该-
分隔符是不幸中之大幸:这将是最好不要使用任何分隔符和en_eff
单词表特别制作的用于这一目的。但我觉得更容易进行沟通和共享密码时,他们有一些隔膜。
为了生成一个完全随机的密码,我使用以下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
}
我之所以这样说,是因为我相信记住更少的密码,而是依靠密码管理器来存储难以猜测的大字符串非常重要。有关这些选择背后原因的更多详细信息,将在前面的文章中进行解释,我的密码管理器也对此进行了评论。
自从我问这个问题以来,出现了一个不错的选择,那就是Redacted的XKCD-password-generator。
这是一个很好的Python脚本,用于生成XKCD样式的密码,该密码具有一些高级选项,例如acrostic支持。