我是否应该强制我的用户每 n 天/周/月更改一次密码?

我是否应该强制我的用户每 n 天/周/月更改一次密码?

问题说明了一切。我们正在设计一个安全性非常重要的系统。有人提出的想法之一是强制用户每 3 个月更改一次密码。我对此的看法是,虽然由于密码经常更改而更安全,但它也迫使我们的用户记住不断更改的密码,并且更有可能让他们把密码写在某个地方以帮助记住。

同样的想法是,强迫用户使用一个非常难猜的密码真的很好。强迫他们使用 ?%&% 和大写小写字母。我知道发明这样的密码并记住它很麻烦。

再说了,我们不希望任何人使用 12345。

那么。有没有关于这个主题的白皮书?有什么好的做法吗?

我说的是用 PHP 创建的网站。如果有什么变化的话,则是在 lamp 环境中使用 MySQL。

答案1

我认为我可能在这一点上属于少数派(基于我与学校和工作中的 IT 部门打交道的有限经验),但我认为强制性的、基于时间的密码更改策略充其量是毫无价值的,最坏的情况下是有害的。人们往往非常不擅长选择好的密码并保密。密码过期策略旨在通过限制任何一个密码被破解/社交工程/盗窃的时间来缓解这种情况;然而,它们在实践中未能实现这一点,主要是因为它们迫使用户不断地重新学习密码。通过让用户更难记住密码,你最终会导致他们中的许多人选择较弱的密码,和/或将密码写在窥探者可以找到的地方。

此外,当被迫定期更改密码时,许多用户会选择遵循非常可识别模式的密码,例如[base string][digit]。假设用户想使用他们的猫名 Fluffy 作为密码。他们可能一开始的密码是fluffy,然后将其更改为fluffy1fluffy2等等fluffy3。在这种情况下,该策略实际上对安全性没有帮助;即使用户选择比更安全的基本字符串fluffy,即使他们安全地记住了密码,每隔几个月更改一次的单个后缀字符也几乎无法减轻破解或社会工程攻击。

也可以看看:密码过期有害,一篇短文(不是我写的)我认为对这些问题进行了很好的介绍。

答案2

我的大型组织(超过 15,000 名用户)在 2009 年秋季实施了每 120 天一次的“密码更改”。这是一个巨大的 IT 难题,浪费了支持资源。每当 120 天的期限到来时,我们都会迫使数千名用户更改密码……其中许多人要么输入错误并锁定了他们的帐户……要么第二天就忘记了。尽管我们试图尽可能地使服务台成为自助服务,但我们的服务台还是被密码电话淹没了。

如果您希望用户/客户讨厌您……并希望您的一线 IT 员工抓住一切机会烧掉您的肖像……请实施密码更改。

密码更改策略是 IT 经理指南中的复选框...而且是 15 年前写的。没有一个真正实施或支持该策略的人会告诉你这是一个好主意。

我在这里主张使用“密码短语”而不是密码......这有很大的好处......隧道尽头的那盏灯就是一列迎面而来的火车。:)

密码短语是一串很长的、几乎无法猜测的字符串,但非常容易记住,例如“MyCatIsFromSpainAndICallHimElGato”。或者可能是一首诗或一首歌中的一句歌词。

如果你想让它真的很难破解……那就弄乱大小写,添加一些标点符号,将一些“一”改为“埃”,将“哦”改为“零”,将“a”改为“@”,等等……但要让它容易记住……这是关键。甚至有办法挑选它们,让它们轻松地从你的手指流到键盘……这样你就不会在双手之间来回切换,也不会因为 SHIFT 和奇怪的标点符号而手忙脚乱。

所以...

  • 使用长“密码短语”。
  • 测试它们的内部强度。
  • 在整个基础设施中实施“单点登录”,以便客户每天只需使用一次或两次。
  • 永远不要强迫他们改变。
  • 并且教育、教育、再教育人们如何正确使用它们。

马特

编辑:2011/8/24 西科光盘同意,而且说得比我好。

答案3

不。我个人的看法是不必要乃至适得其反。我在我的博客上大发牢骚,但如果你有兴趣的话,你可以去寻找。

简而言之,有两个原因:

1.强迫用户不断更改密码会导致糟糕的密码。

关于这一点,不乏轶事证据,但如果我每隔 x 天就被迫记住一件新的事情,我就会让这些事情变得容易记住,并且可能彼此相关,这是有道理的。

如果用户知道密码很快就会更改,他们更有可能选择“可猜”的密码,如“Jan2010”或“Password05”。对字符实施严格的政策很可能只会导致添加感叹号或完整拼写的名称,而不是缩写。技术复杂的密码和不会被猜到的密码之间有很大区别。

2. 强制定期更改密码并不能防止攻击,它只能降低风险(而且效果不大)

想想看 - 如果您的密码以某种方式被猜出或发现,攻击者需要多长时间才能利用这些信息?设身处地为攻击者着想。您刚刚发现了一个密码。您是否会立即登录并提取所有信息,以防有人发现?30 天后,您已经得到了想要的一切。

我的建议:

  • 强制执行极其严格的密码策略(例如 15 个字符,包含大写、小写、数字和特殊字符,并且没有超过 3 个字符的英文单词)
  • 永远不要让用户更改密码。如果他们必须将密码写在一张纸上并放在钱包里,那其实没问题。人们擅长保护纸质文件,但不太擅长记住随机字符串。

答案4

作为一个密码策略相当严格的环境(“超级难猜的密码”和更改密码)的用户,我的观点是只需要硬密码。虽然您的用户需要一点时间来适应它(特别是如果他们是 12345 类型的用户),但他们应该能够在一周内轻松记住并输入它。

但是,如果您使用如此强的密码并强迫他们更改,我可以预见最终用户会感到不舒服。

相关内容