防止密码跨不同站点重复使用

信息安全 密码 密码策略 密码破解
2021-09-11 19:00:27

我通常反对接受密码过于严格或复杂的规则(例如“它必须包含至少一个大写字符、一个数字和一个符号”之类的规则,另请参见XKCD #936: Short complex password,或长字典密码?)。通常我更喜欢计算强度度量(基于包含的特殊字符和长度),如果它高于给定阈值,那么我接受密码,不管它是否强大,因为它是 32 个字符的纯小写文本或因为它是 10 个字符但是它还包含汉字中的数字)。

我喜欢这种方法,因为它对最终用户来说很容易,并且假设受过良好教育的用户会选择密码短语,我倾向于认为他们的密码相当安全。

然而:

  • 用户可能会错误地使用非常常见的句子(我的名字是 adriano或类似的东西)。只要有好的统计数据可用(也许它们现在甚至可用,但我只是不知道),获得散列密码列表的攻击者可能会使用这些统计数据来猜测密码短语。

  • 我不能确定其他网站的安全性,我想防止用户为他们注册的每个网站重复使用相同的密码。

我想要求他们在密码中包含一个给定的随机单词,例如:输入您的密码,确保在其中包含单词“honey”合理吗?AFAIK 它不应该使用重复的单词/模式来弱散列,因为单词是从足够大的(和特定于语言的)字典中随机选择的。

是的,他们可能只是将所需的单词附加到现有文本(例如“我的名字是阿德里亚诺,亲爱的”),但从破解者的角度来看,这无关紧要,因为单词是随机的,最终额外的分隔符也会提高安全性。

3个回答

输入您的密码,请务必在其中包含“蜂蜜”一词。合理吗?

不,这不对。

  • 随机密码生成器可能不支持添加特定单词。
  • 不使用密码管理器的用户更难记住。
  • 它鼓励用户选择比没有条件时可以使用的更短的密码,只是因为他们想轻松记住它。

如果您有一个公共注册页面,那么您应该假设您要求您的用户遵守的任何密码限制都会被攻击者知道。这是因为任何人都可以开始注册过程以查看密码限制是什么。只需多次访问该页面,攻击者就可以构建自己的所需单词字典,并有效地消除首先拥有它的任何可能优势。

现在考虑有一些缺点,(在其他答案中已经提到),这个想法的最终结果是:不推荐

这个想法的一个问题是用户确实是可预测的。如果你让他们包含一个词,他们很可能会用这个词组成一个简短的短语,而且,鉴于他们在互联网上,它可能是淫秽的。

例如,如果给定单词​​“honey”,您很可能会得到“BloodyHoney”、“F**kingHoney”、“我讨厌蜂蜜”的变体。您可以根据需要选择尽可能大的字典,但您可能会激怒用户,因此对其进行字典攻击并在常用词前附加脏话可能会至少获得一些命中。

您还会惹恼使用密码管理器的人 - 他们必须为您的网站设置特定规则,因此更有可能离开。我在特殊字符规则有限的网站上这样做,而且我比我认识的一些人更宽容!