问题说明了一切。 我们正在devise一个安全性非常重要的系统。 其中一个想法是强制用户每3个月更换一次密码。 我认为,虽然它的安全性更高,但由于密码经常变化,所以它也会迫使我们的用户记住不断变化的密码,并使它们更有可能只是写在某个地方帮助记忆。
同样的想法是强制用户使用超级难猜的密码真的很好。 强制他们使用?%&%和大写小写字母。 我知道发明这样一个密码然后记住它是相当麻烦的。
然后我们再也不想让任何人使用12345。
所以。 有没有关于这个问题的白皮书? 良好的做法?
我正在谈论一个用PHP创build的网站。 MySQL在灯环境中,如果改变什么。
我想我可能是less数(基于我在学校和工作上与IT部门打交道的经验有限),但我认为强制性的,基于时间的密码更改策略充其量是毫无价值的,最坏的情况是有害的。 人们在select好密码和保密方面往往很不好。 密码过期策略旨在通过限制任何一个密码可被破解/社交工程/窃取的时间来缓解这种情况; 然而,实际上却无法实现这一点,主要是因为它们迫使用户不断地重新学习密码。 通过使用户更难将密码提交到内存中,最终导致其中许多用户select较弱的密码,并且/或者将密码写在某个地方,在那里窥探的人可以find它们。
而且,当被迫定期更改密码时,许多用户将select遵循可识别的模式的密码,例如[base string][digit]
。 假设用户想要使用他们的名字Fluffy作为他们的密码。 他们可能会从fluffy
的密码开始,然后将其改为fluffy
, fluffy
, fluffy
等等。 在这种情况下,政策并不能真正帮助安全。 即使用户select比fluffy
更安全的基础string,并且即使他们保持密码的安全记忆,每隔几个月更改的单个后缀字符对缓解破解或社交工程攻击也没有多大作用。
另请参阅: 密码过期被认为是有害的 ,一篇简短的文章(不是我写的),我认为这是一个很好的介绍这些问题。
我的大型组织(15000多名用户)在2009年秋季每120天实施一次“密码更改”。这是一个巨大的IT难题,也是支持资源的浪费。 每当120天窗口滚动,我们有成千上万的用户被迫改变他们的密码….其中许多人不正确地做,并locking他们的帐户….或忘记第二天。 即使我们尽可能地尽可能多地使用自助服务,我们的帮助台也会被密码调用所困扰。
如果你想让你的用户/客户讨厌你….和你的第一线IT人员烧你的肖像,他们得到每一个机会……实现密码更改。
密码更改政策是一些IT经理如何在某处预订的checkbox……这是15年前写的。 没有人实际上实施或支持政策将永远告诉你这是一个好主意。
我在这里争论的是“密码短语”,而不是密码……很多很好的事情……隧道尽头的灯光正在迎面而来。 🙂
密码短语是一个很长的几乎不可猜测的string,非常容易记住,比如“MyCatIsFromSpainAndICallHimElGato”。 或者,也许从诗歌或歌曲的线。
如果你想使它真的很难破解….混乱的情况下,添加一些标点符号,改变一些ells,哦零,一个@等…但保持记得 – …这是关键。 甚至可以select它们,使它们从手指轻松地stream向键盘….所以你不会在两手之间或者SHIFT和怪异的标点之间跳动。
所以…
马特
编辑: 8/24/2011 XKCD同意,并表示比我更好。
不,我个人认为这是不必要的 ,甚至是相反的 。 我在我的博客上跑了起来,但是如果你感兴趣的话,你可以打倒。
总之,这归结于两个原因:
1.强制用户不断更改密码导致密码不正确。
在这方面也不乏轶事证据,但是如果我每隔x天就要被迫记住一件新事物,那么我会让这些事情容易记住,而且可能是相互关联的。
如果用户知道这个密码很快就会改变的话,他们更有可能select像“Jan2010”或“Password05”这样的“可猜测的”密码。 对字符执行严格的策略可能只会导致增加感叹号或拼写完整的名称而不是缩写。 技术上复杂的密码和不会被猜到的密码之间有很大的区别。
2.强制定期更改密码不能防止攻击,只会降低风险(而不是太多)
想一想 – 如果您的密码被猜出或发现了,攻击者需要多长时间才能使用这些信息? 把自己放在攻击者的鞋子里。 你刚刚发现了一个密码。 你会不会login并提取每一个信息,你可以直接发现,以防万一有人发现? 在30天的时间里,你已经拥有了你想要的一切。
我的推荐:
从用户的angular度来看,不得不改变我的密码是非常不方便的。 我绝对讨厌这样做,只会勉强使用我绝对需要的网站,如果他们要求我更改密码的话。
还有一些讨论,这是否是一个很好的做法,因为有些人不得不写下他们的密码,以记住他们。
你可以实现其中的一个小部件,告诉人们在填写密码时他们的密码有多强(或者弱) – 我觉得这些是有用的,但是我不知道它们是否会导致更强大密码。
作为一个相当严格的密码政策环境(“超级难猜猜密码”和密码变化一样)的用户,我的意见是,只有硬密码是必要的。 虽然用户习惯使用它(特别是如果他们是12345类用户)需要一点点时间,但他们应该能够在一周内轻松地进行调用和input。
但是,如果您拥有如此强大的密码并强制您的密码更改,我可以预测不舒服的最终用户。
从ITpipe理的angular度来看,您最好的select是调查让您的应用程序使用客户正在使用的现有authenticationscheme的单点loginfunction的可能性。 很明显,Active Directory是一个很大的玩家,但是如果你的应用程序和现有的IT已经configuration好的策略一起工作,你不必担心重新发明轮子。
由于关于是否强制执行密码更改是一个好主意(尽pipe我认为这是您的主要问题的次要问题)出现了很多争论,我还以为您可能会喜欢这里的一些想法和链接。 对于大多数情况下,如果你不打算强制执行密码的复杂性和更改时间表,你可能根本就没有密码 – 但是实现的方式 (培训,pipe理支持等)比我强调的更重要。
经常更改密码可能会导致用户将其写下来。 根据Bruce Schneier( http://www.schneier.com/blog/archives/2005/06/write_down_your.html ),这不是一个坏主意。
我甚至会争辩说,让安全阻碍可用性有时候会是一件好事,只是因为它提醒用户安全行事。 比如在我工作的银行里,很多安全措施都是安全的,比如门口的人脸识别,但是如果识别失败的话,安全人员会为你打开门。 虽然这些措施本身并不能提高安全性,但它们总是在那里提醒我们,安全是工作中的一个重要对象,有一定数量的日志logging和检查正在进行,如果您发现某些事情“不安全”会遇到麻烦。
当然,这适用于银行员工的安全,它可能不适用于您的网站的用户…
如果您的安全策略需要,您应该强制您的用户每n天更换一次。 我在国家机构工作,这是国家审计署强制执行的要求。 我不能做任何事情,所以我不得不强制改变。
如果您不受规定的约束来强制更改密码,请不要强迫他们。 确保设置的密码满足一定的最低复杂度要求。 长度胜过大多数密码系统的复杂性,所以在我看来,一个可变的标准是最好的。 如:
诸如Active Directory之类的内置复杂性scheme不支持这种分层的系统。 如果你build立你自己的密码更改环境,你可以做这样的事情。 因为每次使用shift键都会增加fat-finger事件的可能性,所以使用多个字符集的长密码更有可能招致失败login事件,特别是在学习阶段。 如果你有一个账户locking系统,这可能是一个大问题。 对于使用他们喜欢的诗的第三行(63个字符!)作为他们的通行短语的人,不需要h @ x0r它使input快速和高效。
如果技术或风险环境发生重大变化,并且您的密码现在不像应该那样复杂,那么确实会在一段时间内使密码失效。 人们会抱怨的必要性,特别是如果你以前从来没有改变过,但它会帮助你保持安全的姿势。
很难猜测密码是一件好事。 强化复杂度会导致用户忘记密码或者将密码写下来,这是一件坏事,因为复杂性所带来的任何安全性在这个过程中都是完全丢失的。 在一个理想的世界(不幸的是我们生活的地方),应该在复杂性和可用性之间取得平衡。 当然不同的人会在不同的地方看到这个平衡点。
在X天定期更改密码背后的逻辑是有点失去了我。 我通常听到的原因是为了限制被盗密码的有用性,我反应说在任何时候几乎肯定会在头几个小时内造成任何真正的破坏。 如弗雷德“熟悉”玛丽的密码。 除非在玛丽改变密码的几乎同一时间发生,否则如果明天或下个月发生改变,它会有什么不同? 在使用密码之前,Fred是否真的有可能再等一两个星期呢(假设这是一直以来的意图)?
显然,如果有任何理由或怀疑可能有必要更改密码是另一个问题。
如果应用程序需要如此高级别的安全性,您是否考虑过使用类似SecurID令牌的东西? 这意味着用户每60秒获得一个新密码; 你不必担心他们使用写密码。 但是,这些花钱。 解决scheme有多安全?
我认为这些信息对用户来说很重要。向他们解释如何创build一个密码,以及两次使用相同密码的重要性。 一个简单的方法来创build一个密码是采取一个句子,并采取每一个字的第一个字母,并添加一些数字。
防爆。 我喜欢统治世界= Iltrw99
不要强迫他们改变密码,只会混淆他们。
虽然我不同意每三个月更换一次密码,但如果您的公司是公开上市的,那么这是一个要求,而且是符合SOX标准的一部分。 附注:萨class斯 – 奥克斯利法案吸吮。
我没见过的东西是外部访问资源。
我倾向于同意,如果你select一个合理的密码策略,除非有人把它写下来,否则没有人可能会猜到密码。
然而,假设您可以在网站外访问网页邮件,现在您可能有用户在“任何旧电脑”和IMO上input凭据,从而增加了可能嗅探/窃取这些密码的间谍软件/恶意软件/特洛伊木马等提供的业务数据风险。
如果人们写下简单的密码,是什么让你认为他们不会写下一个巨大的密码或一个超级复杂的密码。 增量密码更改所实现的function是自动清除不再使用的用户标识,并允许个人用户在所有这些方面承担一定责任。 人们将成为人,寻找轻松的道路来完成某件事; 重复的密码和增量更改的密码可以被检测到并被拒绝。 复杂性要求可以强制执行,强制密码更改也可以让非IT用户对所有这一切负责。 大部分抱怨密码转换的用户都是懒洋洋的更换密码就像开心手术一样。 停止抱怨,负责任,不要试图寻找轻松的街道,或寻找有“跛脚”要求的新工作…