停止把你武断的密码规则强加于我

最近我了解到了一篇关于密码设置的博文,我很关心安全,但我不认为目前的技术是最佳解决方法。下面我对此问题详细解释下。

问题

你想要实施更安全的密码,我懂。但是,停止把你蹩脚的密码规则强加于我。

不要对这篇帖子太苛刻,我只是试图表明一种看法。我不是特别针对那篇帖子的作者,只是受它激发写下我的想法。我在向所有在他们的网站和服务使用这些密码规则的所有人演说。我讨厌这些规则:
图片描述
密码必须包含1个大写字母,一个小写字母和一个数字。在这样的规则下,密码Abcd1234能通过你的验证,但mu-icac-of-jaz-doad不能。

我知道你可能希望人们使用随机密码,像i%Mk3c4n,但你的规则实际上并不强迫执行这些,而且即使他们是,这些密码是讨厌且不安全的,除非他们确实相当长——这会让他们更讨厌。打出它们是一种痛苦,特别是在没有安装密码管理器的电话和电脑上。

其次,那些使用不安全密码的人们仍然会使用像Loverboy1964一样愚蠢的密码,所以你并没有帮到任何人。

停止把你武断的规则强加于我,并且鼓励别人这样做——至少我的密码是更好的。

案例

你将允许的两个密码:
图片描述
图片描述
您不允许的两个密码:
图片描述
图片描述
解决方案

我不知道,但如果你真想实施比这个列表中更安全的密码,那就不要尝试不必要的复杂模式。你的验证规则仍将允许人们使用大部分像添加一个大写字母或一个或三个数字这样的方法。

相反,为什么不仅仅增加最小长度,并且不允许数列中有3个或者更多的/[0-9]{3,}/?

你可以越过这些一小步,并且不允许相同的字符在同一行内出现两次,最终不让用户那么的烦恼。

这将会消除大部分的问题并且不会不必要地限制你的用户的密码选择。

更好的是,为什么不忘记所有的这些规则,只是使用一个最小密码熵的要求。
图片描述

Reddit上一位用户的观点——我不明白为什么那么多人不只是用zxcvbn:

我们并不特别在意你的密码包含什么,只要这个公道的熵的评价器说它足够好。要在2000个字符A后跟一个ASCII吗?嗯,zxcvbn不会因为没有包含一个小写字母而不让你通过。
图片描述

原文地址:http://ryanwinchester.ca/post/stop-forcing-your-arbitrary-password-rules-on-me

译者信息:张亚芳,西北农林科技大学硕士,产品经理。