命令行工具生成难忘的密码?


20

我正在寻找用于Linux的工具,命令行或GUI,该工具可以生成令人难忘的密码。

我在寻找的等效项是Mac OS X钥匙串可以生成的密码,例如apples12$/fourteen。强大但容易被用户记住的东西。

Answers:


22

从那以后,我大部分密码都转到了XCKD风格的密码短语中。这是来自commandlinefu的1个衬里,用于生成密码:

shuf -n4 /usr/share/dict/words | tr -d '\n'

2
实际上,这种单一语言存在一个问题:它可能使用诸如“ the”,“ them”,“ their”和“ moat”,“ iris”,“ he”之类的词。看到问题了吗?前缀和后缀之间有重叠,这会减小生成的密码的实际熵,并且如果字符串不够长(尤其是4个单词),可能会导致密码强度很低。这就是基于单词的密码生成器使用精心制作的单词列表的原因。诚然,上面生成的密码相当不错:在我的测试中,最小密码为14个字符,中位大小为34。但是它们的熵并不可靠。
anarcat

前缀/后缀重叠有什么问题?我可以理解您关于长度的观点,但是您需要解释另一点。
James McMahon

让我们简化到极限。你有三个字开出了dictionnary: themetheme。通常,您会希望这三个词具有同等的熵,但是在这种情况下,您无法计数,theme因为它是其他两个词的组合。实际上,theme实际上为密码添加了零熵。
anarcat

但是“我”与“主题”有区别吗?我知道可能的字母会增加熵,但是这种方法更多地是关于密码的大小。我不知道“我的主题”将如何容易地猜出,然后出现一个没有重叠字符的序列,例如“做音乐”
James McMahon

1
@wbg我的答案在这里superuser.com/a/1246245/177019
anarcat

11

2020年:我在2011年发布了这个答案。在过去的岁月中,网络安全的面貌和对其的要求已发生了巨大的变化。正如anarcat指出的那样,pwgen可能不(或不再)适合于保护高安全性系统。他列出了描述如何pwgen的就可以了,在某些情况下,在使用密码导出的不安全的方法,从可用熵技术细节他的文章。尽管我不再相信生成密码来尝试自己记住密码,但是我不具备验证技术的能力,更不用说保证所引用文章的内容了,因此请阅读并得出自己的结论。话虽如此,我相信pwgen将足以满足不太可能受到攻击的低安全性系统的需求。

您可能想签出该pwgen应用程序。我知道它可以在Ubuntu,Fedora,Debian和Suse存储库中使用。

手册页

pwgen程序生成密码,密码旨在使人容易记住,同时又要尽可能安全。令人难忘的密码永远不会像完全完全随机的密码一样安全。特别是,pwgen生成的不带-s选项的密码不应用于可能通过离线暴力攻击来攻击密码的地方。另一方面,完全随机生成的密码容易被记录下来,并且容易受到这种方式的破坏。

pwgen程序设计为可以交互使用,也可以在shell脚本中使用。因此,其缺省行为取决于标准输出是tty设备还是通向另一个程序的管道而有所不同。交互使用时,pwgen将显示一个完整的密码屏幕,允许用户选择一个密码,然后快速擦除屏幕。这样可以防止某人能够“肩膀浏览”用户选择的密码。


3
“ Zei7jool”或“ Oowee6ei”之类的密码在我看来并不难忘。也许我缺少旗帜?
詹姆斯·麦克马洪

3
@James根据一种将字母无意义的算法生成的,但是因为它们在人类语言学中是合乎逻辑的且易于记忆的顺序。您可能必须做出类似的努力才能记住apples12$/fourteen密码。试一试。
BloodPhilia 2011年

1
它喷出了大量的密码,只是选择最难忘的密码-里面有一些宝石;-)
virtualeyes 2013年

4
默认情况下,pwgen密码具有严重的安全性问题,并且不太容易记住。请改用diceware或xkcdpass。
anarcat

1
@anarcat谢谢!我同意pwgen可能不再是最好的选择,但是我会保留我的免责声明,以免您出于历史目的而担心。
BloodPhilia

8

我建议人们停止使用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
}

我之所以这样说,是因为我相信记住更少的密码,而是依靠密码管理器来存储难以猜测的大字符串非常重要。有关这些选择背后原因的更多详细信息,将在前面的文章中进行解释,我的密码管理器也对此进行了评论


4

尝试“ gpw”。它会生成以下密码:ubsonsin morimplo demenump esselymn kidentst anenterg essonsuf iesssssi bestruss tnestese

说明:Trigraph密码生成器此软件包生成明显的密码。它使用从提供的任何字典中获得的三字母组合(三边形)的统计信息。因此,可发音性可能因语言而异。基于Morrie Gasser的Multics密码生成器和Dan Edwards的CTSS生成器的思想。FIPS标准181描述了类似
的基于图的生成器,该生成器来自Gasser's。



By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.