强密码与尝试次数限制

信息安全 密码
2021-08-29 08:05:14

首先,我正在考虑对 Gmail 或 Dropbox 等标准互联网服务进行密码保护。他们经常强迫用户选择一个“强”密码,即许多字符,包括大写字母和数字,所以Password1可能会起作用。

但是银行卡一般都有4位数的密码,其安全性是基于尝试次数的限制,一般限制在10次以内。多次尝试后,你必须去银行解锁你的卡。

为什么互联网服务不走同样的路?例如,在输入 10 个错误密码后,您的帐户将被封锁一天,再过 10 个 - 一个星期,依此类推。如果您是它的所有者,那么您可能不会输入错误的密码 10 次。我想象的问题在于其他人可能能够阻止您的帐户。但可能IP地址检查会做。

这种锁定技术难道不比强迫用户选择一个看起来很强大或很难记住并且可能写在计算机背面的密码更好吗?或者至少允许用户自己选择保护方法?

4个回答

为什么互联网服务不走同样的路?

从根本上说,因为用户不想要它。

实施更强有力的安全措施意味着要花钱,而对于大多数互联网服务来说,更强有力的措施也会对用户群和服务的使用产生负面影响。尤其是如果您是广告收入驱动的互联网服务(大多数都是),您最不想做的就是阻止人们在一段时间内使用您的服务,因为那会损失收入。

在最好的情况下平衡安全性和便利性是很困难的,而对于基于互联网的服务来说,这尤其困难,因为典型用户和绝大多数用户根本不愿意牺牲任何便利性,不不管他们换来多少安全感。正如您所注意到的,典型的密码复杂性方案允许使用Password1. 典型的用户会选择这样一个简单的密码,然后将其用于所有事情。(正如每一个大密码转储所证实的那样。)他们不喜欢被告知他们不能使用他们的密码,因为密码太弱了。

他们只是想使用该服务,并不愿意为此遭受太多不便。除了极少数例外,如果您的服务不允许它们,则有许多几乎相同的竞争服务会,而这就是它们将去的地方。而且,如果他们不愿意“忍受”使用任何远程类似于像样密码的东西,他们当然不会容忍被锁定在他们的服务之外或对他们强加一个实际的强密码/短语。

至此,这里是对 Gmail 的双因素身份验证选项使用情况的一个不错的估计和分析,它链接了来自 EuroSec 2015 (pdf) 的研究论文,达到了非常相似的估计。一种免费的、可选的、非常安全(且简单、方便)的方式来保护您的 Gmail 帐户免遭劫持......大约 6.5% 的人可能会被打扰使用它。

因此,如果谷歌只能设法让大约 6.5% 的人为其在线服务使用免费、方便的安全层,那么没有人有机会对其用户实施更强大的安全措施。

信用卡信息并不意味着公开。如果有人强行使用信用卡,那么很有可能它被盗了,或者它的详细信息被某种方式泄露了。这就是为什么阻止信用卡是有道理的。

另一方面,Gmail ID 是供公众使用的。它可以显示在某些在线个人资料或网站上,可以打印在名片上等。基本上,您的目的是向人们提供您的 ID,以便他们可以使用它与您联系。这就是为什么当有人决定使用您的公共 ID 登录时(您知道,只是为了好玩)阻止您关闭您的 GMail 帐户是一个非常糟糕的主意。有很多空闲时间、决心和足够长的电子邮件地址列表的人可能会关闭整个服务。:)

简单的答案是两者都应该是最佳实践。复杂密码减少了密码可以被猜到的更改,并且尝试限制减少(注意:但不消除)恶意用户能够暴力破解凭据的机会。

这里的反驳是这两种措施都会影响便利性和可用性。考虑到我们如今拥有的服务密码数量,限制尝试次数会大大增加误报的机会(当用户说自己是谁但只是忘记了密码时,可能会被阻止)。

密码复杂性的增加使记住密码变得更加困难,并增加了来自其他途径的攻击面(密码写下/保存在浏览器中等)。

对于银行卡,他们选择使用相对简单的密码,依靠相当严格的(三次尝试,你被阻止)尝试限制。再加上大多数卡终端要么有人值守,要么至少受到监控,复杂密码的附加安全性不值得增加输入时间或忘记的机会。在这种情况下,速度为王。

相反,对于一个网站,用户是匿名的,所以没有那个检查。复杂的密码有助于对抗这种情况,但实施不当的尝试限制可能会导致真正的用户因健忘或恶意而被阻止。

请注意,正如您的标题所暗示的那样,这不是一个非此即彼的场景。除了便利性的权衡或设计师的懒惰之外,没有什么可以阻止这两种方法的使用。

我想象的问题在于其他人可能能够阻止您的帐户。但可能IP地址检查会做。

是的,另一个用户可能会故意输入错误的密码而导致拒绝服务。我不确定您如何在此处考虑 IP 地址 - 如果他们从您通常使用的另一个 IP 地址中猜到,这是否意味着他们可以无限使用?如果不是,它如何区分攻击者和从不同 IP 登录的真实用户(比如他们的路由器已重新启动并且他们的 ISP 已为他们分配了一个新 IP)?

银行卡和密码的区别在于银行卡是两个因素。你需要一些你有的东西——卡,还有一些你知道的东西——PIN。可以说,如果使用双因素身份验证,您可以实施您的方案,因为对于每个密码猜测,他们需要提供他们的第二个因素(例如 Yubikey、SMS 代码或 Google Authenticator 代码),并且系统仅将其计入他们的总数,如果这正确提供。

此外,如果密码真的输错了,锁定一天或一周可能会很不方便。

密码强度指示器有助于防止的另一件事是,当攻击者从系统中检索密码哈希,并且攻击者试图离线破解​​它们时。在这里,除了通过以一种行之有效的方式迭代密码哈希来减缓任何攻击的密钥拉伸之外,没有任何速率限制是可能的。

这一点特别重要,因为尽管有相反的警告,用户仍会在不同的系统上重复使用密码,因此他们为 Gmail 选择的密码很可能与他们为不太安全的网站选择的密码相匹配,该网站的密码列表通过 SQL 注入弹出。首先确保密码强度高有助于保护其他地方的用户。