我不是统计学家,所以我不知道这方面的数学,但请考虑以下两种情况:
一个 16 个字符的密码:
Password: XXnrKkO4`AM&U$6D
或者
两个 8 位密码:
Password 1: u/wyk<}U
Password 2: hc]KpL3C
我见过一些需要高安全性的网站(即:银行)使用两个密码布局,但它提高了多少安全性?
我不是统计学家,所以我不知道这方面的数学,但请考虑以下两种情况:
一个 16 个字符的密码:
Password: XXnrKkO4`AM&U$6D
或者
两个 8 位密码:
Password 1: u/wyk<}U
Password 2: hc]KpL3C
我见过一些需要高安全性的网站(即:银行)使用两个密码布局,但它提高了多少安全性?
银行通常不会(除非他们有愚蠢的安全策略,并且其中一些这样做)要求两个被视为相同的密码。
我所在的一家银行,汇丰银行使用双因素身份验证。他们要求提供我的帐户密码(“我知道的东西”)以及由钥匙扣生成的一次性代码(“我拥有的东西”)。这有助于防止单因素身份验证的两个弱点:“橡胶软管加密”(有人将我的密码从我身上敲出,但他们没有钥匙扣)和被盗密码(他们有钥匙扣,但不是我的脑)。
其他银行,例如 Nationwide(在英国),要求提供您的客户 ID(相当于用户名),还要求提供“可记忆数据”(实际上是密码)和来自 6 位数字代码的三位数字,该代码由用鼠标下拉列表。
我知道这是为了帮助防止键盘记录器:密码(“可记忆数据”)提供传统的密码安全性,但下拉数字列表提供键盘记录器保护,因为数字是随机的并用鼠标选择(键盘记录器通常不记录鼠标移动)。然而,用鼠标选择整个密码是不切实际的,所以这就解释了这一点。
现在回到您最初的问题,假设您不是在谈论我刚才描述的两种情况,那么答案是“视情况而定”。
然而,人们会假设有问题的网站只是在通过密码匹配实现之前将两个密码连接在一起(希望使用加盐哈希),但即使它们没有连接,组合的数量也很明显(仅假设字母密码) 16 个字符的密码 (26^16) 与两个 8 字符的密码 (26^8 * 26^8 == 26^(8+8) ) 相同。
因此,鉴于两种情况下输入域的大小相同,这表明要么网站开发人员很愚蠢,要么他们有单独的文本框来提高可用性(例如,通过连接两个更容易记住的密码生成长密码) ,有一个两因素系统就地,或者有一个键盘记录器规避技术就地....或其他完全:)
它不是那么安全,并且取决于您的数据库布局实际上可能会降低性能。这对用户来说也是一个巨大的麻烦。
您所说的方法称为“双重验证”,它在与几种不同的识别技术一起使用时最有效。
例如,第一种验证方法可能涉及电子邮件+通行证(我们都熟悉那个),第二种可能涉及使用手机+短信(发送到您的手机以进行额外验证的代码)。
这是一个好主意,我一直将它用于所有 Google 应用程序。就在几个月前,我们的一位竞争对手(没有姓名)的谷歌账户被黑,用户信息被泄露。这可以通过双重验证来避免。
至于密码有效性的问题,请查看此链接。 http://howsecureismypassword.net/
双通确实意味着更高的安全性,但使用不同的验证方法会更有效。