如果密码是唯一的,那么它有多“强”真的很重要吗?

信息安全 密码 密码策略 密码破解
2021-08-28 16:30:19

人们似乎觉得“如果密码超级强,是否唯一重要”这个问题很有趣,但它实际上提醒我,相反的问题也很有趣:如果您为在线帐户使用真正唯一的密码,密码的“强度”(即复杂性和随机性)真的那么重要吗?

已经向用户发布了非常、非常、非常多的建议——对于具有“安全意识”雇主的员工,强制性规则——关于创建“强”密码的必要性以及如何这样做。但是这个建议和那些规则通常没有考虑到密码的实际使用方式和位置具体来说,他们完全忽略了在线服务、工作中的远程服务器以及几乎所有任何负责任管理的密码和 PIN 身份验证系统上使用的锁定和限制机制对密码安全性的影响。

让我们考虑一个稍微极端的场景:

我正在为某家未命名的美国主要银行的在线帐户设置新密码。要创建该密码,我决定要偷懒,但我也不想选择与我使用的任何其他密码相同(或任何接近它的东西)的东西,而且不是愚蠢的常见或容易猜到。所以,我打开我的网络浏览器,从这里抓取一个(puesdo)随机选择的英文单词,让我们说从这里随机选择一个数字然后......

可怕的4

让我们假设它direful4是完全唯一的,与我曾经使用或将要使用的任何其他密码无关。我们还假设攻击者没有任何关于密码及其选择方式的信息。(我们还假设今天我的银行甚至允许我设置这样一个“弱”密码开始。)

因此,请记住任何体面的失败登录锁定或限制机制都会对攻击者在银行网站上进行暴力破解的速度施加限制,使用direful4银行密码确实比使用安全性要低得多,比如说, Kt3w54EIsq%OinCs8@f? 如果是这样,怎么会?

(对我几年前读过的几位微软研究人员的一篇优秀论文的提示,这真的让我想到了这一点:“ ‘强’网络密码真的能完成任何事情吗??”)

4个回答

是的,它不太安全。因为如果黑客获得了银行用户数据库的副本,包括散列密码,那么他们将不再受到网络界面上的限制或锁定的限制,并且可以对散列进行全速暴力攻击。如果银行使用有效的散列算法(他们显然不应该这样做,但银行实际上并非都具有完美的安全性),那么攻击者可能每秒可以进行十亿次尝试。以这样的速度,他们可以在两天半的时间内枚举出每个包含数字、大写和小写字母的八个字母的密码。

密码的长度几乎是对抗暴力破解+离线哈希破解场景的最相关因素。您的密码越长,枚举所有可能性所需的时间就越长,因此您获得更多的时间/安全性。

“随机性”也很重要,但这仅适用于 koluke 所说的彩虹表/字典攻击。因此,随机性可能与特定情况无关,但旨在消除最基本的方法,从而使暴力破解技术成为瓶颈。

编辑:我想补充一点,我还发现这些密码策略对公共访问很有用,因为它们向我保证所有密码至少满足最低安全级别(例如,没有 3 字密码)和不允许他们使用诸如“密码”、“安全”或“04.04.1997”之类的东西作为他们的密码。到目前为止,并非所有通过策略的密码都可以被视为“安全”,但至少我知道它们的安全性不是想象的。

如果您使用字母数字短语,例如direful4,则很容易猜测或暴力破解您的密码。密码越强,如果站点的帐户数据库受到破坏,就越难以猜测或暴力破解。

如果您提到的银行网站确实允许您存储不安全的密码,并且银行在多次失败的登录尝试(或他们的数据库被破坏)后未能锁定帐户,那么拥有更强的密码可以为您提供更多保护,防止有人试图破解您的密码使用彩虹表、蛮力或字典攻击。

密码安全性(以及一般安全性)的想法是在策略上有一些重叠,以防有人犯错或恶意行为者找到绕过保护的方法。这被称为分层安全方法。例如,没有人希望被黑客入侵,但如果他们被黑客入侵,拥有大量访问日志有助于识别攻击的对象、内容、时间和地点。同样,您运行反恶意软件以防止病毒感染,但您仍应保留关键数据的备份,以防恶意软件能够逃避您的反恶意软件保护。

如果您不在任何地方重复使用此密码或此密码的任何迭代或变体,我会说您是否强制执行强大的策略来生成它并不重要,只要它不能在网上被暴力破解(要么是因为应用程序不允许有足够多的失败登录尝试,或者因为在线尝试这么多密码成本太高)。

我能想到的唯一场景是:

假设攻击者设法获得了对目标系统的临时访问权限,出于任何原因,他不想向服务器添加任何内容,因此他不维护访问权限,也没有添加任何后门,任何东西......

他只是下载了数据库,并决定永远不再潜入这个系统。(或者也许他们从未检测到入侵,但他们修补了他们的系统并且他不能回去)。

现在,如果他可以破解哈希或您的密码,他仍然可以在此站点上冒充您。而如果您的密码更强,也许他将无法做到这一点。

(是的,我知道已经 2 年了,但我想知道我的分析是否错了)。