单一大小写字母数字密码对用户最友好吗?

信息安全 密码策略
2021-09-01 14:27:01

我们经常被建议或要求编写包含以下所有内容的密码:数字、小写字母、大写字母和一些特殊字符。在我看来,这不是最好的建议。

假设我们的密码需要 80 位熵,可以通过以下方式实现: 16 个随机单写字母数字字符;14 个随机的二写字母数字字符;或 13 个可打印的 ASCII 字符

我的观点是,与重复操作大小写转换键和在键盘周围搜索特殊字符相比,输入两个或三个额外的单大小写字母数字字符更容易。

4个回答

如果您希望密码方案对用户最友好,那么您必须让用户选择他/她想要的,而不是通过事后猜测用户可能更喜欢什么来强制实施这样的限制。

每个人都是独一无二的。有些人可能更喜欢可以凭借纯肌肉记忆快速输入的简短复杂密码,而另一些人可能更喜欢可以串成歌曲的密码短语。

我认为开发人员应该尊重这一点,而不是试图将我们所有人都融入一个模具中。

17个随机的单大小写字母具有相同的熵,并且更容易记忆和输入。

之间有一个权衡:

  1. 要求用户输入短句或短语,无需验证大写、非字母字符
  2. 字符复杂的非常短的文本字符串

用户将通过输入密码的麻烦和成功率来衡量他们的体验,并且对于不同的受众,您将获得不同的结果,并且由系统设计人员来确定最适合特定受众的方法(尽管我会说根本没有密码是最好的,但这是另一个问题的答案)。

在银行业,我使用数字密码(可怕的熵)比在呼叫中心更成功,因为长短语的成功率最高(我猜他们更擅长打字)。

我想认为“密码”作为一种身份验证手段的保质期有限。

我不会说它对用户更友好。就个人而言,我希望记住更少的字符,但我也讨厌人为地限制我。一种更有趣的方法可能是计算用户密码的熵,并且只需要一定量的熵。

如果用户只输入小写字母,则需要最多的字符。如果它们包括任何大写字母、数字或标点符号,则这些字符中的每一个都将应用于密码的长度以确定熵的数量。

这将由用户决定他们是想要更长的字母密码还是更短、更复杂的密码。对于这样的系统,您需要存储的唯一额外内容是一个标志,表示如果整个密码使用相同的大写,则密码不区分大小写。然后,如果设置了标志以确保以相同的方式处理未来的条目,则您可以使用较低的字符串。

它确实有使需要做的事情变得不那么明显的缺点,但是仍然可以构建详细的错误消息,例如,“您的密码还不够安全,要使您的密码更安全,请考虑添加 3 个标点符号, 1 个大写字母,2 个数字,6 个小写字母,或者尝试其中的一部分。确保将它们分布在整个密码中。” 这将使用户知道需要添加什么以获得足够的熵的示例。

它也有一个缺点,即用户可能只是将它们附加到末尾,这比将它们分散在各处的安全性要低,但是用户选择错误密码的问题与信息安全一样古老。