带模式的密码强度

信息安全 密码
2021-08-11 06:25:34

用于强密码的较少使用的技术之一是使用模式甚至直接重复,因此它可能很长,但仍然令人难忘。

例如:

Thue-Morse 01101001100101101001变成0110-3223-5445-6776-9889 increment parity 20

斐波那契1,1,2,3,5,8,13,21,34,55变成0 0 1 2 4 7 12 20 33 54 one less than fibonacci

Pi 数字3.1415926535变为after 3. is 14159 then 26535

长前缀 11111119 and 19999999 are primes

重复 aall leetttteerrss aarree ddoouubbleedd eexxcceepptt l

键盘布局 !@@###$$$$%%%%%^^^^^^&&&&&&&********(((((((((

不是最好的例子,但你明白了。因此,实际密码可能如下所示:

primes 235 LuA: LualuA LualualuA LualualualualuA

对人类来说看起来很容易,但猜测算法肯定不知道和 的重复之间的primes联系235lua

有很多模式可以解决,还有很多可能的映射/突变。映射也可以分层。然后可以插入单词,并添加短前缀和后缀。如果搜索空间仍然不够大,您可以将其中的两个连接起来以平方可能的密码数量。它实际上是不可猜测的还是这些模式削弱了密码足以让专门的算法能够轻松猜测它们?

它们的长度和非单词的使用也应该使它们不受任何现有的密码猜测方法的影响,因此至少它们具有这种优势。


额外:在这些密码之一中实际上有多少猜测熵?实际上没有任何数据可以处理,但我们可以使用费米估计来得到一些接近。

3个回答

据我所知,问题是:

他们几乎无法猜测,对吧?

答案是非常强烈,这取决于您担心的攻击类型此外,在最好的情况下,您所做的与使用密码管理器随机生成的密码一样强大,但几乎可以肯定会付出更多努力,对吧?


@RoyceWilliams 的回答几乎一针见血:

一般来说,如果你的方法一经知道就变弱了,那你就做错了。

让我们进一步分解一下。您需要担心两种类型的密码暴力攻击:

路过攻击

又称“机会主义”。在这里,攻击者正在寻找唾手可得的果实:他们正在并行攻击系统的所有用户,或者寻找进入系统的单个入口点(在这种情况下,任何用户都会这样做),或者他们正在寻求妥协为尽可能多的帐户。

他们不太可能尝试任何类型的“算法生成”列表,因为他们只需根据今年的违规情况尝试100,000 个最常见的密码,就可以获得他们想要的东西。只要您的密码不在“最常用的 X 密码”列表之一,您就已经完全免疫了;你真的不需要付出额外的努力。

有针对性的攻击

在这里,你,特别是你,被选为目标。也许您的帐户中有对他们的雇主有价值的数据,也许您为公司的 IT 服务台工作,并且从您的帐户发送网络钓鱼电子邮件更有可能成功。不管是什么原因,你正在被专门研究。

他们会找到您的社交媒体帖子。他们会在这个网站上找到您的帖子。他们将从之前的违规行为中提取您的所有密码,以研究您如何发明密码。他们将编写软件,根据他们对您的了解生成猜测列表。如果他们知道你喜欢使用数学常数,或者托尔金的名言,或者 wtv,他们会建立适当的猜测列表。

针对有针对性的攻击,@RoyceWilliams 引用Kerckhoffs 原则的回答是相关的:即使攻击者知道方案是什么,您的方案也必须是安全的。您可能足够聪明,可以发明通过此测试的东西,但我敢打赌,无论您发明什么,都将比仅使用具有 32 字符随机密码的密码管理器更加努力。就这样做吧。


这两种攻击模型旨在成为思考威胁形势的框架,而不是攻击者将要做的事情的详尽清单。正如@Ben 在评论中指出的那样,这两者之间有一个滑动比例,它具有 Drive-by 的一些特征和 Targeted 的一些特征。你把你的舒适程度放在哪里是你的选择;尽管如果您当时正在考虑这一点,那么为了最少的额外努力,您不妨一直走到顶部并使用密码管理器。

此类方法确实使密码对手动检查更具抵抗力。不幸的是,您的对手不仅限于人工检查。您描述的所有方法都是自动化的 - 因此密码破解爱好者很容易复制。

一般来说,如果你的方法一经知道就变弱了,那就是你做错了与其试图智取人工检查,不如使用一种能够抵抗攻击的方法,即使该方法的精确细节是已知的

此外,您描述的某些技术很难在您的脑海中完成,并且无论如何都需要用户将密码存储在其他地方。如果您已经打算这样做,您不妨简单地:

  • 对于非记忆密码,生成随机密码并将其存储在密码管理器中,以及

  • 对于记忆密码,使用随机生成的密码短语,具有足够的单词数和单词列表的长度来抵抗暴力破解。Aaron Toponce 有一个比较各种密码/密码生成器的列表,说明了在选择一个时应该考虑的质量。为您的用例调整字数和字典长度。

最后,对于你关于猜测熵的问题,我鼓励你不要被这个问题分心。那里只有一些真实世界的“位”信息——“这是我使用的基本字符串”加上“这是我为转换它所做的事情”。这种方法的有效“熵”在短期内可能是可以接受的,但一旦发现方法就会急剧下降。(换句话说,推迟讨论熵,直到你确定了一种不会被披露削弱的方法)。

低熵的长密码对一件事有好处:暴力攻击当前的蛮力攻击被限制在大约 10 个字符内,所以如果您正在考虑将zxcvbn其用作您的密码,那么使用它zZxXcCvVbBnN会是一个很大的改进。

但是,如果您要使用正确的密码(如correct horse battery staple),您可以确定它不会被暴力破解。在这种情况下,使用低熵填充只会增加输入的难度。攻击者必须首先获得某种洞察力才能破解您的密码,并且如果我们假设攻击者可能会了解您的密码,那么假设您的填充方案可能是这些洞察力的一部分是合理的。

是一篇短文,批评您提出的方法。一句话概括,

任何关于低熵方案的公开建议,无论在任何细节层面,都是弄巧成拙的。它被采用的越多,它相对于熵的衰减就越快。