我不太明白为什么通常的做法是要求具有字母数字和特殊字符要求的难记密码,同时还具有 32 个字符的上限。如果低位字符要求是 32 并且没有特殊字符、数字和大写的要求,是不是每个人都更容易记住密码?
字典攻击存在的事实意味着不同的字符要求无论如何都是无用的。许多人只是在短密码前添加或附加数字或特殊字符,或使用诸如“leet speak”之类的替换。
我不太明白为什么通常的做法是要求具有字母数字和特殊字符要求的难记密码,同时还具有 32 个字符的上限。如果低位字符要求是 32 并且没有特殊字符、数字和大写的要求,是不是每个人都更容易记住密码?
字典攻击存在的事实意味着不同的字符要求无论如何都是无用的。许多人只是在短密码前添加或附加数字或特殊字符,或使用诸如“leet speak”之类的替换。
众所周知,许多负责为系统设计安全性的人对信息安全知之甚少,并且没有能力完成这项任务。作为这种说法的来源,我将多年作为渗透测试者的个人经验,以及我看到人们多年来发展的事情的绝对困惑。不是因为开发人员是糟糕的开发人员——恰恰相反——而是因为信息安全与普通软件开发有不同的要求。这就像让画家画一幅房子的蓝图。
因此,对处理身份验证和授权的系统的要求缺乏了解的开发人员通常会退回到最原始的学习形式:模仿。我们看到别人做事,但不明白为什么做这些事,我们就模仿他们。“毕竟,这样做是有原因的。” 这个过程有一个名字:Cargo Cult Programming。
最初,货运崇拜是部落人民的崇拜,他们看到现代士兵接收带有补给品的空运货物。他们认为这架空运货物是神灵的礼物,士兵们的活动是召唤神灵带来礼物的仪式。于是,在士兵们离开后,部落的人们开始尽其所能地模仿他们的活动,制作临时制服,上上下下,希望这能招来一些神恩。
Cargo Cult Programming是一个类似的过程,由于某些情况,一些开发人员以特定的方式做某事。然后其他程序员盲目地以相同的方式实现他们的解决方案,而不了解为什么以这种方式实现解决方案,以及它旨在解决什么问题。
例如,由于出口限制,“DES crypt”最多只允许 8 个字节的密码长度——这主要是一个法律问题。所以任何使用 DES crypt 的系统都需要最大字符长度为 8。看到这个实现的人可能不知道为什么选择 8,并且可能盲目地复制这个实现,甚至可能没有在后台使用 DES crypt。所以他们不受最大密码长度 8 的限制,但仍然任意强加它,仅仅是因为他们看到其他人做同样的事情。
至于为什么公司需要简短而复杂的密码而不是长而易于记忆的短语?不幸的是,那个在我们身上。很长一段时间以来,安全专家都试图让人们制作“更好”的密码。从某种意义上说,这是真的:<3BZg2Ck
是一个比ILoveNYC
.
然而,安全专家并非万无一失,我们也吸取了惨痛的教训,例如AviD 的可用性规则:
以牺牲可用性为代价的安全是以牺牲安全为代价的。
简短、高度复杂的密码对人们来说真的很难记住,人们开始使用“系统来制作好密码”,比如tGbHuJm!
(我会让读者自己弄清楚为什么这是一个坏密码)。专家们改变了他们的建议,转而提倡使用长密码,例如It's monday again and the coffee still tastes like wet socks
,但“常识”很难改变。当人们听到密码短语应该复杂时,他们半真半假地看到了复杂密码比简单密码更好,并敦促他们的用户使密码尽可能复杂。
在需要密码的系统中,应敦促用户使用密码管理器来创建安全的新密码。一个足够长的、随机生成的密码总是会胜过任何长的、易于记忆的密码,而且如果浏览器自动为用户填写密码,它也更容易使用。
如果这不可能,则应敦促用户输入长密码。人们通常更容易记住短语,而在力量方面,长度才是王道。但是,用户可以坚持使用公开且根本不安全的短语,例如In the beginning God created the heaven and the earth.
- 任何自动检查都会告诉您这是一个惊人的密码,但我的破解机器上的单词列表会有所不同。因此,您可以尝试为用户生成一个令人难忘的句子,或者只是相信他们知道自己在做什么。
最后,在用户输入密码后,建议使用数据库检查该密码,例如Have I Been Pwned? 以确保密码不被认为是不安全的。
我不太明白行业的常见政策是如何要求使用不同字母数字和特殊字符的难记密码,密码上限也为 32 个字符。如果较低的字符要求是 32 并且不需要特殊字符/数字/大写,那么每个人都不会更容易记住密码。
翻译:为什么限制长度的密码比冗长的密码更受青睐?
两个原因:
软件 -公司可能正在使用限制允许密码长度的数据库或大型机后端。这些公司可能是购买了他们的软件但没有资源或控制来改变它的公司。这种情况在银行/金融界尤其普遍。
传统 -多年来,“密码复杂性”一直被宣传为理想目标。即使是最近的NIST 指南也偏向于讨论密码而不是密码短语,同时公开承认即使有复杂性要求,人类也会选择糟糕的密码。
NIST 指南也已转向鼓励使用 TOTP 或其他多因素解决方案,这表明密码短语本身并不被认为是超越密码的足够飞跃。(顺便说一句,NIST 同意您的观点,即应允许至少 64 个字符的秘密长度,以容纳密码。)