Security 密码安全

Security 密码安全,security,passwords,Security,Passwords,你们中的许多人可能都知道这张图片。有人会说它很容易受到字典攻击,所以我写了自己的密码生成器。我使用的是默认的2048单词列表,另外添加了一个数字、符号和大写字母 如果使用密码管理器(例如Lastpass),我可以轻松创建如下内容: #guwV&zMot#v2YJE0^!x5vCnd1M$r&MNCvJgP*j7k3v6F5nM#hf1jUITOl^HP&D9 但是在你的智能手机上输入这个字符串一点也不有趣。下面是我生成的密码的一些示例(): 我的想法是: 攻击者尝试字典

你们中的许多人可能都知道这张图片。有人会说它很容易受到字典攻击,所以我写了自己的密码生成器。我使用的是默认的2048单词列表,另外添加了一个数字、符号和大写字母

如果使用密码管理器(例如Lastpass),我可以轻松创建如下内容:

#guwV&zMot#v2YJE0^!x5vCnd1M$r&MNCvJgP*j7k3v6F5nM#hf1jUITOl^HP&D9
但是在你的智能手机上输入这个字符串一点也不有趣。下面是我生成的密码的一些示例():

我的想法是: 攻击者尝试字典攻击-由于额外的字符而未成功。因此,下一次尝试将是bruteforce(小写字母)。之后,他还需要尝试大写字母、数字和符号。因为他不知道我密码的长度和数字/符号/大写字母的数量,他必须尝试所有可能的组合

因此,在不知道密码的模式和长度以及字典、字符、数字和符号的易交换性/修改性的情况下,密码应该与生成的最后一次密码一样强大。我的想法是正确的还是我遗漏了什么,而这个密码也不是那么安全


(编辑)更新了源代码:将$RANDOM替换为从/dev/RANDOM生成随机数的函数,添加了一些注释和变量名,现在更清晰了。

智能攻击者不局限于普通字典攻击。他们的密码破解程序可以尝试字典单词的变体、多个单词的串联等。当您编写密码生成器时,您应该假设攻击者知道用于生成密码的算法,但不知道CSPRNG的种子。指向粘贴的链接不起作用。这是一个私人粘贴。从2048个单词的列表中选择10个单词会产生一个110位的密码,这个密码非常强大。(假设您的实现不糟糕)。粘贴现在应该可以工作了。实现不是很出色。。。只是拼凑了几行代码来让某些东西工作。我怀疑bash rng是否安全。如果它使用32位种子(非加密PRNG的典型情况),这将把安全性限制在32位,我不会感到惊讶。
pull 2 mule slot F milk lecture treat crew _ dry amateur pyramid
hole # agree domain 9 execute exist loud column bounce G another
pledge 4 moral rely slow _ fork M tired fame razor cradle derive
report ! crop addict choice fiction fashion 9 mail W sun weather