大海捞针理论有效吗

信息安全 加密
2021-08-28 04:07:06

干草堆理论是建议在密码中放置重复字符,以使暴力破解更难。

这有什么数学基础吗?还是蛇油?

2个回答

“干草堆”只是描述蛮力的一种隐喻方式。密码中“重复字符”的想法很糟糕。

整个密码游戏就是防御者(即用户)从一组“潜在密码”中提取他的密码,攻击者将遍历这组密码,直到找到正确的密码。更大的集合意味着攻击者需要做更多的工作,但防守者也需要做更多的工作,因为这是要记住的更多选择。

如果用户是机器人,那么“重复字符”将与其他任何东西一样好:就像爱一样,熵是盲目的,只要有足够多的密码,它就不会介意您如何获得可能的密码集。但是,如果用户是机器人,那么他们会使用随机的 128 位密钥作为“密码”,整个讨论将毫无意义。在实践中,人类用户是人类,这意味着人类大脑将不得不进行记忆。这里的要点是,用于记住特定密码功能的“内存资源”根本不等同于固定数量的额外熵位。

如果您将密码作为“普通单词”,然后将一个字母加倍(例如“passwword”),那么与实际增益(对于 8 个字符的源密码)相比,记住这个特定字母加倍所需的努力是相当大的,你会从选择加倍的字母中得到 3 位熵——实际上会少一点,因为很多人会选择加倍“o”,因为“Google”,而不是“goggle”)。这就是在这个问题中讨论的著名漫画背后的全部想法:为了从人类记住的密码中获得最大的熵,您必须以能够很好地映射到人脑的最佳能力的方式生成密码。人类非常擅长说话,并且在阅读和写作方面受过高度训练(通过多年的辛勤劳动),. 大多数“密码改进”技巧,比如包括数字和标点符号,或者,对于手头的情况,重复字母,都与大脑不一致。因此,它们适得其反。

简而言之:不要将一个字母加倍,而是添加另一个单词。这将更好地利用你的脑细胞:它会以更少的努力为你提供更多的安全感。

所有暴力密码攻击都包括遍历密码字典中的所有元素。因此,为了保护自己,您需要 (a) 确保您使用的密码不在攻击者的字典中,并且 (b) 任何包含您密码的字典太长而无法通过。

最有效(因此也是最常用的)字典只是常用密码的列表,这就是为什么使用常用密码是个坏主意。然后是常见写作中的单词列表,加上这些单词的组合和变体(添加数字和标点符号等),然后是每个字母组合从最短开始,然后到最长。