首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >“被引用的XKCD计划[.]不再是好建议”吗?

“被引用的XKCD计划[.]不再是好建议”吗?
EN

Security用户
提问于 2014-07-10 05:16:43
回答 7查看 91.4K关注 0票数 238

我跌跌撞撞地出现在这篇文章上,Bruce声称XKCD密码方案实际上已经死了。

现代密码破解器将字典中的不同单词组合在一起:... --这就是为什么oft引用的生成密码的XKCD方案--将单个单词(如“更正震击”)串在一起--不再是好建议的原因。密码破解者就知道这个把戏了。攻击者将把他可以访问的关于密码创建者的任何个人信息输入密码破解器。一个好的密码破解者将测试来自地址簿的姓名和地址,有意义的日期,以及它拥有的任何其他个人信息。...如果您的程序将其存储在内存中,此进程将捕获它。

他的论点似乎是,因为众所周知,人们可能会以一种使密码易于攻击的方式构造他们的密码,但它的力量似乎完全在于指数的力量。我猜他是在暗示人们没有真正随机地选择单词,这也许不是完全不诚实的,因为我已经重复了几次,得到的东西不是所有的副词和形容词。然而,我假设将熵降低2-10倍并不是真正意义上的(如果单词列表加倍到4000,也不是很难,损失就会超过恢复)。

另一个关于“如果你的程序曾经将它存储在内存中”的俏皮话是有点令人不安的.不是所有的密码都存储在内存中吗?这似乎有点过头了,他究竟指的是什么?

EN

回答 7

Security用户

发布于 2014-07-10 07:33:17

圣战者

我想你会发现生成密码的正确方法可能会引发一场神圣的战争,每一组人都认为对方犯了一个非常简单的数学错误或漏掉了重点。如果你在一个房间里有10名计算机安全专家,并问他们如何想出好的密码,你会得到11个不同的答案。

误解

关于密码没有一致建议的原因之一是,所有这些都归结为威胁建模的问题。你到底想要防御什么?

例如:您是否试图防止攻击者专门针对您,并且知道您的系统用于生成密码?或者你只是某个泄露数据库中数百万用户中的一员?您是在防御基于GPU的密码破解,还是仅仅是一个薄弱的web服务器?你在被恶意软件1感染的主机上吗?

我认为您应该假设攻击者知道您生成密码的确切方法,并且只是针对您。xkcd漫画的2在这两个示例中都假定生成的所有细节都已经知道。

The Math

xkcd漫画中的数学是正确的,而且不会改变。

对于密码,我需要键入并记住,我使用的python脚本生成xkcd风格的真正随机的密码。我有一个字典2^11 (2048)常见,容易拼写,英语单词。我可以向攻击者提供完整的源代码和我的单词列表的副本,仍然会有2^44个可能的密码。

就像漫画里说的:

1000猜测/证交会对弱远程web服务的合理攻击。是的,破解偷来的散列更快,但这不是普通用户应该担心的。

这在容易记住和难以破解之间找到了一个很好的平衡。

如果我们尝试更多的力量?

当然,2^44是可以的,但是GPU破解速度很快,而且只会变得更快。哈希猫可以在几天内,而不是几年内破解出如此大小的弱散列3.。还有,我有上百个密码要记住。即使是xkcd风格,也会在几次之后变得困难。

这就是密码管理器进来的地方,我喜欢KeePass,但还有许多其他的基本相同。然后,您可以生成一个更长的xkcd通行证短语,您可以记住(说10个单词)。然后,您为每个帐户创建一个独特的128位真正随机的密码(十六进制或基数64是好的)。128位比特在很长一段时间内是足够强大的。如果你想变得更加偏执,那么生成256位十六进制密码就不是额外的工作了。

1 --这是内存问题出现的地方,如果您所在的主机受到了破坏,那么您就丢失了内存。如果攻击者能够键入或使用KeePass之类的程序来复制和粘贴内存,这并不重要。

2而不是较弱(但更有可能)的假设,即攻击者刚刚租了一本名为"Top Passw0rdz 4realz 111!“的字典。

3.确定我们都应该使用PBKDF2等等..。但是很多网站还在SHA1上。(他们是好人)

票数 234
EN

Security用户

发布于 2014-07-10 15:11:18

Schneier写道:

这就是为什么oft引用的产生密码的XKCD方案--把诸如“纠正电池敲击”这样的单词串在一起--不再是好建议的原因。密码破解者就知道这个把戏了。

但要理解他真正想要的是什么,关键是在他的文章中再深入一点:

还有一个方案是可行的。早在2008年,我就制定了“施耐尔计划”( 所述 )。

就这样吧。奥利布鲁斯想要断言,他的计划是唯一的,最好的,最终的方案。因此,无论这种说法在科学上是否合理,他都需要对“竞争者”说些轻蔑的话。

在这种情况下,总是假定攻击者知道密码生成方法。这就是熵计算的全部要点;参见分析。攻击者“掌握了这一诀窍”根本不会改变任何情况(当攻击者知道密码生成方法时,熵计算准确地描述了密码强度;当攻击者不称职且不知道密码生成方法时,密码强度只会更高,其数量几乎无法量化)。

关于“记忆中的密码”的俏皮话只不过是一些不连贯的胡扯而已。密码必须在某一时刻进入RAM,无论是键入它们,还是从密码安全库复制粘贴它们,或者任何类似的东西。

我猜布鲁斯喝醉了。

最新的施耐德被特别要求评论他在Reddit AMA (通过archive.org,原始链接)的密码谴责发生在2016年8月2日。他继续倡导他的密码创建系统,作为随机单词密码的一个更好的替代方案。Schneier确实说过,他的方案“比其他方法给你的每个可记忆字符的熵更多”,这与造词的字符相比是正确的。但是,当一个系统依赖于记忆单词而不是字符时,这也是不相关的,并且允许您组合足够的单词来为整个密码生成足够的“熵”。

票数 164
EN

Security用户

发布于 2014-07-10 07:11:06

XKCD密码方案和以前一样好。安全性不是来源于未知,而是因为它是从一个庞大的搜索空间生成令人难忘的密码的好方法。但是,如果你选择要使用的单词,而不是随机生成它们,那么这个优势就会消失--人类并不擅长随机应变。

关于内存的一点描述很糟糕,但这是一个值得关注的问题:如果窃取密码的恶意软件出现在您的计算机上,它将清除所有文本--比如RAM和硬盘驱动器--用于对您的帐户进行定向攻击。

票数 62
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/62832

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档