惩罚用户输入不安全的密码[关闭]


13

我正在考虑限制选择不安全密码的用户的权限(密码的不安全性由长度,使用的字符类型(大/小写,数字,符号等)决定,是否可以使用)。 (位于彩虹表中)以限制帐户遭到破坏后所造成的损失。

我还没有这个想法的申请,但是说我正在写一个论坛之类的东西:使用1234作为密码的用户可能必须在发布前填写验证码,否则将受到诸如此类的严格反垃圾邮件措施的约束。作为超时或贝叶斯过滤器拒绝其内容。如果此论坛是非常分层的,允许“提升”主持人或通过某种方式进行的其他活动,这将阻止他们完全获得特权或告诉他们他们具有特权,但不允许他们在不进行任何更改的情况下行使其特权。密码。

当然,这不是唯一的安全措施,但是它可以很好地替代其他良好的安全做法。

你怎么看?这是否只是做的太过分,将注意力从更重要的安全实践上转移了下来,还是限制风险并鼓励用户使用更安全的密码的一种好方法(并希望说服您正在使用良好的安全实践的人们)?


24
当您已经可以限制使用不正确密码的用户甚至根本无法访问系统时,这样做有什么好处?
皮特

12
大多数人可能会继续使用“ letmein”,无论您对他们施加什么限制。在创建/更改密码时强制执行密码规则,或者不执行。
约翰·斯特拉卡

3
@卡森·迈尔斯(Carson Myers):不是,如果您用Cat6电缆将其
制成

13
一,用户是什么?我已经厌倦了需要登录才能看到论坛上张贴的图像的网站,然后要求密码使用大小写混合的10个字符,包括数字和特殊字符,并且没有下划线和数字1。使密码要求与值成比例数据保护。
SF。

6
在佛罗里达州,迟交有线电视帐单的人有时只能使用一个频道。CSPAN。它为他们工作。<耸肩>
Mike Sherrill'Cat Recall'

Answers:


35

YAGNIKISSDRY10秒规则以及“用户不在乎您”这一事实 可能会将其范围缩小为一个解决方案:不用。

  • 这是更多的开发工作,需要大量测试才能可靠和安全。
  • 您可能会以任何方式降低网站的安全性。某些错误导致使用可怕的密码导致特权升级的可能性太大。
  • 它增加了开发人员,测试人员,维护人员,DBA,系统管理员和用户的复杂性。
  • 复杂性越高,避免以某种方式重复自己的难度就越大。
  • 用户没有足够的注意力来阅读您的信息并对其进行跟进。他们习惯于调整注册表单,直到接受输入为止,直到达到理想水平为止。
  • 用户只是不在乎。

优点,全部,除了DRY。为什么要干?同样,也不必那么复杂,整个“向MOD的推广”等仅仅是几个额外的例子。由于大多数网站已经检测到不安全的密码,并且许多常见的平台(想到了Wordpress)已经允许您使用不安全的密码进行注册,是否为这些用户添加验证码会引起所有这些担忧?这可能很烦人,但其他替代方法是将用户完全拒之门外,或者让他们进入并冒更多垃圾邮件的风险。例如。
卡森·迈尔斯,

3
+1用于使用它的链接。好的网站是好的。具有讽刺意味的是,UI / UX站点很丑陋。
StuperUser 2011年

4
为用户+1不在乎您。如果这是一个愚蠢的博客/问答网站,并且我必须记住一个复杂的用户名/密码组合,那么我将不会使用它。
ElGringoGrande 2011年

@ElGringoGrande我不一定非要提出愚蠢的建议,而是将其作为“允许所有密码”和“拒绝所有错误的密码”之间的中间地带,那里有很多网站在使用每种方法。但是进展不顺利,哈哈
卡森·迈尔斯

13

要么在注册更改时强制输入安全密码,要么使用OpenId(Jeff Atwood的2c:http : //www.codinghorror.com/blog/2010/11/your-internet-drivers-license.html)。然后专注于更有趣的功能。

一方面,用户习惯于被迫创建安全密码或使用其OpenId,因此对他们而言很简单。


我同意OpenId对于这类事情非常有用,但我认为您可能会偏向于认为大多数用户已经习惯了其中任何一种。我知道大多数人从来没有听说过的OpenID,甚至更多使用不安全的密码
卡森·迈尔斯

1
好点子。我在SE之前没有使用OpenId,但是由于缺乏复杂性而拒绝了密码。如果介于保持简单和安全之间,那么即使教育用户的责任落在您身上,安全性也至上。您必须花时间根据密码的复杂性来对他们进行责任教育,最好用它来教育他们安全性/促进普通登录。
StuperUser 2011年

普通登录是理想的选择,但是如果应用程序本质上不是技术性的,则有很大一部分用户会选择仅使用相同的密码(如果密码不可用,则退出)。在我的示例中,我想知道是否应该归结为拒绝用户(拒绝用户密码),还是给他们带来视觉体验(我们不能让您这样做,因为我们不知道您的错误密码是否具有让您的帐户遭到入侵)向他们展示由密码错误造成的问题
Carson Myers

大多数用户将拥有一个facebook或hotmail或Gmail帐户(在许多站点上都需要一个电子邮件帐户来进行凭据检索),从而明确说明如何使用这些帐户进行注册/登录可能会很有用。
StuperUser 2011年

我想我忘了Facebook连接等功能
。–卡森·迈尔斯

12

为什么首先要让您觉得不好的密码?从源头上解决问题将使您节省大量设计时间,以找出密码的哪些类别映射到哪些角色。由于管理员具有完全的权限,因此您已经需要一些功能来确保他不会输入会限制他的密码。

我的回答确实取决于KISS


1
这不是解决方案,因为这会促使用户采取对策,这些对策会破坏您的更多安全策略。
deadalnix

@deadalnix怎么回事?我认为他只是说要放弃整个想法,只是拒绝输入错误的密码,同时提供一个示例说明为什么我的想法可能会引起不必要的烦恼
Carson Myers

@deadalnix是什么意思?用户将采取什么对付安全密码的对策?
StuperUser 2011年

7
@StuperUser:最明显的是:将一个漏洞切换为另一个漏洞。
Piskvor于2011年

1
@StupidUser:如果用户在每个站点上都重复使用相同的密码,并且被告知“ mypassword”是不可接受的,因为该密码不包含任何数字,那么他们很有可能会将其放入“ mypassword1”
elwyn

7

作为用户,这可能会说服我不要使用您的网站。我的意思是说真的,我的银行告诉我一个6位数的代码对于网上银行来说是绝对安全的,但是当我想向一个鲜为人知的博客写评论时,我应该记住一个唯一的密码,该密码至少包含8个大写字母-和小写字母,数字,特殊字符以及希腊字母或西里尔字母符号,只有当您完全了解unicode序列时才能输入。并定期更改。

不要误会我的意思,安全性很重要。但是,如果您不应该惹恼您的用户,除非您有充分的理由相信某人会尝试破解其密码来访问您的网站。如果您的站点恰巧提供对FBI网络的VPN访问,请继续进行,烦死了。但是,如果这是一个用户论坛,具有电子邮件地址的任何人都可以注册,那么真正的意义是什么?


对于一个人来说,如果我们谈论的是社区站点,那么垃圾邮件可能是一个问题(实际上我参与了某个项目)。IMO会驱使更多用户完全拒绝他们的密码,如果我们要通过使用验证码来缓解垃圾邮件(这种情况并不罕见),最好将这种烦恼带给可能引起这种麻烦的用户,不是吗?
卡森·迈尔斯,

另外,我认为这是一个普遍的误解,即如果您很小的话,很难尝试闯入。我参与了一些中小型在线社区,这始终是一个问题。这个ServerFault问题似乎支持这一点
卡森·迈尔斯,

5
为什么垃圾邮件发送者会使用较短的密码?如果他们只能创建一个新帐户,为什么他们会尝试破解他人的密码?我在这里看不到长密码的优势。
nikie 2011年

我不知道,我只是在不久前想出了它,然后决定看一下它如何经受审查:)不好,看来……
Carson Myers

1
我很喜欢您的回答,因为它指出了甚至考虑实施此想法的愚蠢行为:为包含非安全数据的站点创建不必要的安全性。
Tundey 2011年

6

更好的解决方案:笑脸。

我是认真的!读诸如《微调:改善健康,财富和幸福的决定》之类的行为经济学书籍,使我相信了几件事:

  1. 您不能强迫所有人做出明智的决定。
  2. 人们喜欢自由选择,但他们不喜欢很多选择。
  3. 但是,您可以通过简单的技巧来显着影响他们的选择。

我认为这些原则适用于您的情况,例如:

  1. 基于不安全的密码来限制用户很可能会令他们感到沮丧和困惑……尤其是对于大多数不阅读对话框中精心编写的解释,而只是打电话给服务台的人,“它不会工作。”
  2. 创建密码时,用户无需查看所有特殊字符的清单,即可使用。最好向他们显示一个弹出窗口,建议他们仅在输入不符合要求时才增加一些复杂性。
  3. 人们会受到社交线索的强烈影响-即使是像笑脸一样的小孩子也能表明我们赞成他们的行为,反之亦然。一些设计更好的网站将显示一个彩色的进度条,当用户键入(建议的)密码和确认时,该进度条将从红色变为::不够好(从绿色变为“ 做好!!: ”)。当用户自行发现如何借助用户界面的即时反馈来创建更安全的密码时,此用户界面给他们带来了一定的社会压力,要求他们达到标准-让酒吧变成绿色,或使皱眉变成微笑。颜色变化。

2
我最初的想法是,您建议要求用户在密码中使用笑脸。
阿什卢姆2011年

4
@aslum:实际上,密码中的笑脸并不是一个坏主意。几乎所有密码都是由非字母数字字符组成的,因此只需在不那么弱的密码末尾扔一个:)即可,仅通过增加搜索空间即可使密码明显更强。
afrazier

@afrazier:除非这成为惯例,否则可以将其添加到字符列表中,对吗?
serv-inc

4

不想堆积,但是我想到了另一个理由将它提交到我还没有提到的“坏主意”下-客户支持。

如果该产品背后有客户支持代表,那么他们就不会非常喜欢这种产品。支持人员的基本假设之一是,他们了解并可以预测用户体验-如果他们在协助普通用户,则第1页应该具有指向第2、3和4页的链接,他们可以在其中进行X,Y,Z等

现在,您为他们提供了另一个必须跟踪的变量。如果用户看不到指向第4页的链接,是否是因为他们做了一些愚蠢的事情?还是因为他们的密码很烂并且您的系统通过拒绝他们访问第4页来惩罚他们?等等...废话,拒绝访问第4页是密码错误的惩罚之一,还是我在考虑第5页?让我看一下,仅需一分钟...好的,它说,对于不包含大小写字母的密码,允许访问偶数页,但仅限于只读...好的,先生,您的密码是全大写还是小写?案件。当您输入字母时,这是小写字母;当您使用shift时,那就是大写。您是否在密码中混合了大小写?您用来登录系统的密码。您刚刚使用的那个。好的,请转到“编辑”,然后选择“首选项”,然后选择“安全性”。选择“保存的密码” ...不,先生,我在这里看不到您的密码...。

是的 不要这样


2

要么限制密码,要么将弱密码的风险告知用户。我想如果用户不在乎他们的数据,您可能希望限制对其他人的访问。如果清除那些不小心使用密码做法的用户,则用户可能会更有信心。如果最终要在键盘下的粘滞便笺上或绑在笔记本电脑上的粘滞便笺上出现,那么需要一个更强的密码有什么意义(无法完成这些工作;我已经看到了)。


我的部分问题是,限制用户在使用错误密码时彼此之间的影响,因此您不会直接将它们发送出去,但请确保不要将其不良做法转化为他人的痛苦。经过长时间的讨论,似乎不值得。我还是觉得这很有趣。
卡森·迈尔斯,

2

以及是否可以将其放置在彩虹桌子上

我猜你的意思是字典,而不是彩虹表。如果字典中的所有单词都与密码匹配,则字典攻击仅用于测试它们。可以通过5次尝试并阻挡x分钟来修复此攻击...

仅当您对密码进行散列并且攻击者知道该散列时,才会使用彩虹表。如果他只是“ 12345”或类似的东西,他也许可以在彩虹表中找到哈希。

只是为了完成往返行程:为了使彩虹桌没用,您应该对密码加盐。并为每个密码使用不加盐的盐,而不仅仅是所有密码。如果这样做,攻击者需要为他要访问的每个帐户创建一个彩虹表,其中包含唯一的盐。在您身边做得很聪明,您可以使用级联多重哈希算法来提高哈希效果,以使一代可能花费半秒钟。如果您这样做了,那么访问您网站上的帐户必须花上几天的时间,可能是生成散列值以查找与此帐户匹配项的月份。花那么长时间。

对于散列时间:考虑一下登录机制的等待时间为500毫秒。我认为这是可以接受的...(提醒:将近一秒钟需要握手SSL)


是的,我的意思是字典,谢谢。您肯定是对的,其他形式的安全也是必要的
Carson Myers
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.