我确信攻击者会在开始暴力尝试之前先使用常用密码。即使 CAPTCHA(和其他检测/预防)设备到位,常见密码列表也比字典中的单词小得多。
我将采取不同的立场,并建议在大多数用例中禁止使用常用密码是有意义的。密码的强度与攻击者获得未经授权访问的难度有关。社区目前接受的强密码质量是基于攻击者通过暴力破解、破解或其他方法获取访问权限的难度(即密码短语和助记符增加了路人记忆的难度)。 XKCD在这部漫画中非常准确地代表了这一点。使用不同的大小写、符号等会增加密码的随机性,从而使攻击需要更长的时间才能成功执行,并且还会增加检测到尝试的可能性。
仔细观察攻击方法,前 25 个密码以及许多其他密码通常都出现在字典中。攻击者通常热衷于使用通用密码,并且通常会尝试首先遍历短名单。这类似于许多供应商提供具有众所周知的密码(即 cisco/cisco、admin/admin)的设备并且不强制更改众所周知的默认凭据的常见做法。从收益的角度来看,通常值得先尝试常用密码。攻击者可能不采用这种方法的唯一原因是攻击的目标是什么。在这种情况下,攻击者可能会更加谨慎,因为他/她不想抛出危险信号。
退后一步,我松散地使用“攻击者”一词。攻击者可以是机器人(或自动脚本)、脚本小子(不熟练或不熟练)或熟练的个人。许多安全论点在防止自动/非熟练攻击者和熟练攻击者之间混淆了基础。尽管用于检测和阻止自动/非熟练攻击者的技术通常遵循常识,但熟练的攻击者可能会了解传统的检测/预防策略并相应地调整他们的尝试。假设我指的是自动/非熟练攻击者,除非我限定了技能水平。
在尝试通过普通密码运行之后,如果有适当的预防或检测系统(即访问日志/审计日志、暴力检测),其他在线攻击方法(如暴力破解)将更难以成功启动。或者,离线攻击方法需要访问受保护的密码文件——如果攻击者可以访问凭证信息(无论是散列、加密还是以其他方式保护)。渗透测试人员(白帽)通常遵循使用已知帐户获得对系统的初始访问权限以更深入地访问网络的工作流程。无论如何,如果攻击者可以离线访问凭证存储,那么问题就不仅仅是密码了。
安全实践实际上涉及在可访问性方面进行权衡。不易访问的系统通常更安全比一个更容易访问的。UX/UI 人员将推销故事以使他们的生活更轻松(更易于访问的系统)。安全人员将不得不推销一个不太容易访问的系统。两者最终都必须确定一个 BU/发起人可以接受的立场。将前一点与大多数人指责的倾向(或者可能缺乏接受错误的意愿)以及最吱吱作响的轮子先上油的原则相结合。如果允许用户自由选择密码,并且攻击者获得未经授权的访问并造成严重破坏,“受害者”的第一反应将是“这是怎么发生的?” 手指开始到处指指点点,最后常常指向负责安全的人,问:“你为什么让我选择这个密码?” 一世' m 并不是说这很常见,但负责安全的个人最终要负责推行旨在保护用户(和品牌/雇主)的政策。我的观点是,有时让用户自己选择密码并不是一个好习惯。
再一次,价值访问取决于所提供信息的价值和用户的身份。