首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对于使用“需要几个世纪才能破解”的密码感到困惑

对于使用“需要几个世纪才能破解”的密码感到困惑
EN

Security用户
提问于 2018-05-04 19:55:44
回答 9查看 16.7K关注 0票数 51

我说的是这个密码-- 23##24$25%%26和类似的密码,这些密码是由出现在一种模式中的特殊字符组成的,现在的用户经常使用这种密码。

在工作(金融公司),我创建了一个用户不应该被允许选择的坏密码列表,涉及某些周期或模式,而上述类型显示了包含连续数字的特点--将特殊字符夹在一起(在这里重复特定的时间,两次)。

出于好奇,我在一个非常知名的网站(登录页面)上查看了这篇文章,并表示这需要几个世纪的时间才能打破。

清单中还有一些需要数年才能打破的例子,但它们非常脆弱:

1!2@3#4$5%6^ 2@3#4$5%6^7& a!b@c#d$e%f^

现在,我与列表混淆了,我是否应该将这些特定类型的密码标记为易受攻击,并且不允许用户使用这些密码,即使它们需要很长时间才能破解?

注1-我们认为这些易受攻击,因为许多用户(因此,多个类似的密码)遵循这一趋势,以方便地记住事情。注2--我们很困惑,因为安全人员都是为了增加熵,他们忽略的是数据库中的类似散列的有序性增加了--在我们划定界限的地方,定义了允许或不允许的密码。

编辑:

  • 我说的这个网站,但不会命名,我测试了密码,几乎每个道德/不道德的黑客,几乎每一个用户在Stack Exchange和许多大/小公司(因为他们使用它的服务)。
  • We不以纯文本存储密码。我们使用的是一种不错的,不是自制的,哈希算法。一次事件导致我们检查密码策略,我们在另一台机器上创建了一个单独的数据库db-2,其中我们存储了simply_hashed_newly_created用户的密码(没有salt,没有,只有hashed_password),而没有存储who_created、when_created详细信息。我们只做了很短的一段时间。任何密码的更改也进入了这个数据库。然而,在我们最初的数据库中,db-1 sat secure_salted_passwords。我们还按照模式创建了一个包含散列易受攻击密码的列表L,当我们匹配L & db-2时,我们感到很高兴--我们看到了多组类似的密码,它们都有特定的模式。Ldb-2后来被从系统中抹去。
  • db-2被保存在一台高度安全的机器上,而且是安全的,不会在这里透露确切的细节。我们知道,即使是气隙或电插座也不安全。db-2L均被破坏。
  • 不要担心在这里发布的密码,因为我们已经进行了我们的小实验,所有这些特定的用户都被要求重置他们的密码(当然,一个不同于旧密码的新密码)。所以我才来这里贴了几个样本。而且,我之前也在这里评论过,我从生成器的逻辑中发布了一个密码示例,这个逻辑创建了一个非常庞大的散列密码列表,这些密码可能在db-2中,也可能不在其中。同样,由于所有这些用户都有一个新的密码,所以不用担心,一切都是安全的。
  • 因为我知道生成器的工作原理,所以我在一个网站上测试了几个密码样本,我们对哪些是允许的,哪些是不允许的,以及什么标准感到困惑。

Thanks很多您的答案,请接受我的感谢。基于这些答案,我们暂时推迟了对密码的选择的任何限制。

EN

回答 9

Security用户

回答已采纳

发布于 2018-05-04 20:06:38

在线计算器基于一组特定的假设,这些假设可能不适用于任何一种情况。没有理由相信计算器可以提供任何关于攻击者如何选择破解密码的信息。

例如,如果我知道您使用了一个模式,以及该模式是什么,那么我将调整我的强制执行以与该模式对齐。在线计算器无法解释这一点。还有其他类似的因素需要考虑。“熵”就是要确保尽可能多的随机性。无论使用的字符是什么,集合模式的随机性都大大降低.

所以,是的,如果这符合你的目标,那就禁止这种明显的模式。

不过,我确实对你禁止这些密码的方法感到担忧。你可能打错了。

票数 86
EN

Security用户

发布于 2018-05-04 21:28:43

出于好奇,我在一个非常知名的网站(登录页面)上查看了这篇文章,并表示这需要几个世纪的时间才能打破。

这样的网站不能被视为福音。许多人毫无价值,即使对好的人来说,结果也必须仔细解释。首先,作为一般规则,强度检查器可以明确地告诉您密码是弱的,但不能真正向您证明密码是强的--它找不到错误的密码很可能会落入仪表没有模拟的攻击。对于一些极端的例子,这Ars Technica文章描述了对一些其他令人印象深刻的长密码的成功破解攻击.

几乎立刻,一大批一度顽固的密码暴露了出来。它们包括:“我还能再见到你的脸吗?”(36个字符),“开头是”(29个字符),“从创世到揭露”(26),“我什么都不记得”(24),“有神之死”(26),“给出的死亡”(26),“东方非西方”(25)。

另一件事是,仅仅因为一米告诉你,它判断密码很强,并不意味着所有这样的仪表都是这样的。例如,兹克本检查器是最好的检查程序之一,它认为如果密码哈希很弱,离线攻击将在3小时内破坏:

代码语言:javascript
复制
password:              23##24$25%%26
guesses_log10:         14
score:                 4 / 4
function runtime (ms): 3
guess times:
100 / hour:            centuries  (throttled online attack)
10  / second:          centuries  (unthrottled online attack)
10k / second:          centuries  (offline attack, slow hash, many cores)
10B / second:          3 hours    (offline attack, fast hash, many cores)

match sequence:
'23##24$25%%26'
pattern:               bruteforce
guesses_log10:         14

它估计1!2@3#4$5%6^2@3#4$5%6^7&a!b@c#d$e%f^的攻击时间为10B/秒(3a,10k/秒),因此它们认为更糟糕。(尽管它确实对所有密码进行了4/4的评分。该计量器建议您实际接受任何这些密码,因为它估计,如果应用程序实现了缓慢的密码哈希,它们很有可能抵抗攻击。)但它的分析实际上证明,它们对你应该减轻的特定攻击是脆弱的。)

请注意,zxcvbn对攻击的建模只是基于大多数用户如何选择密码的一般知识--对于您的组织的密码策略或实践如何允许对学习密码的人进行专门攻击,zxcvbn没有任何具体的知识。永远记住,这个工具可以告诉你密码是弱的,但不是强的-zxcvbn估计几个世纪来破解Am i ever gonna see your face again?,我们从Ars的文章中知道它实际上已经在现实生活中被破解了。

现在,我与列表混淆了,我是否应该将这些特定类型的密码标记为易受攻击,并且不允许用户使用这些密码,即使它们需要很长时间才能破解?

正如zxcvbn的结果所显示的那样,你的本能--这些密码应该被禁止--实际上是有一定道理的。问题是,您不太可能成功编译同样易受攻击的密码的有限列表,也不太可能编译攻击者可能成功利用的模式。例如,要捕获zxcvbn认为与后三个密码一样易受攻击的所有密码,您需要一个包含1.2万亿个条目(10B密码/秒×2分钟)的列表。不实际。即使你试图将事情压缩成一小部分要拒绝的模式,我也不会指望你的攻击者能成功地胜过你的攻击者。

您一定要做的一件事是使用强密码散列,使用bcrypt或Argon2密码哈希函数。这就是zxcvbn在上面所说的“慢速散列”的结果,它可能会使您的密码条目更难破解。(但是,请记住,强度检查器可以告诉您某些密码肯定是不安全的,但不是安全的。)

另外,你还应该考虑一些事情:

  • 使用已知非常常见的小清单(数千)密码,并禁止使用这些密码。这样的名单可以很容易地在网上找到。
  • 使用特洛伊·亨特的500M+破解了密码列表,它也有一个在线API。(确保您阅读了资料的k-匿名性,这样就不会实际向API发送密码了!)
  • 使用像zxcvbn这样的智能强度计库,这是一种比您正在考虑的模式检测更复杂的替代方法。
  • 实现第二个身份验证因素,这样密码就不是您唯一的防线。
票数 41
EN

Security用户

发布于 2018-05-05 01:37:17

密码的可猜测性意味着了解人们可能选择的密码类型。我们都知道“密码”是可以猜测的,因为它是一个英语单词。但是要知道你要么需要了解英语,要么需要对英语或其他相关语言如何拼写单词有一个概念。来自Betelgeuse附近从未接触过英语或其他人类语言的外星人不会知道“密码”是很容易猜测的。换句话说,模式在某种程度上是主观的,这使得它们很难提前预测。

类似地,对于列表中的某些密码,它并不能立即看出模式是什么。1!2@3#4$5%6^乍一看有点“随机”,但您很快就会注意到,在QWERTY键盘上,它只是1-6,并将其他所有字符与shift键交替。

此外,如果有人向您展示了密码CPE1704TKS,您可能也会认为它是一个好密码。它有10个字母和数字字符,没有可确定的重复模式,在任何人类语言中都不是一个单词。但是你错了,这不是一个很好的密码,因为它是用来在电影游戏结束时发射核导弹的密码。

因此,从随机网站上计算“可破解性”(基于长度和字符选择)很大程度上是虚假的。此外,它们还依赖于获得密码散列的人,这本身就是一个重大的安全问题。它们是双重虚假的,因为它们暗示你知道哈希的速度有多快。散列速度根据您所选择的算法而变化多个数量级。所以,以“可爆性”分数为例。如今,对密码的大多数攻击都使用普通密码,或者重复使用密码,而不是盗用密码散列。

实际上,这可以归结为简单地维护一个“坏密码”列表,其他人多年来发现这些密码具有某种特殊的含义。我猜保安人员就是从这里来的。

票数 12
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/185236

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档