鉴于暴雪最近发生的数据泄露事件,我想问一下蛮力和咸散密码存储的问题。
Ars Technica有一篇好文章关于为什么暴雪存储的盐渍散列密码也能在短时间内破解。
由于使用了盐碱化和散列,我们知道暴力攻击是破解“复杂”密码的唯一可行方法(字典/普通单词密码是微不足道的).然而,Ars提出了一个很好的观点,即计算能力(包括本地和云中的计算能力)的巨大改进使得蛮力破解更加可行。
对于一个网站来说,强制延迟认证尝试的杰夫·阿特伍德笔记实际上可以阻止蛮力的尝试.但在暴雪入侵的情况下,黑客对数据库拥有物理控制,因此不能施加这样的访问限制。
因此,杰夫还推荐通俗词组。因为一个野蛮的攻击者所面临的熵增加.但是,随着计算能力的提高和可访问性的提高,这也将最终有效地消失。
因此问题是:什么蛮力保护方案可以实现,而不因计算能力的增加而易受攻击?
通常会考虑两阶段认证,但我听说其中一些算法也被破坏了,而物理身份验证器有可能是静态算法,因此一旦破解,所有用户都会受到攻击。
应用于整个身份验证DB的计划滚动盐类怎么办?这将增加大量开销,但即使在物理DB泄漏的情况下,它似乎也是安全的。
发布于 2012-08-13 22:19:05
安全性是几件事情的组合(不仅仅是这个列表,但我不会把这篇文章写成一本书,我现在就把它放在这里):
加密将像哈希、盐类、SSL、密钥等。混淆将像隐写术,使用旋转盐类,将密码分离到另一台没有脚本可以访问的服务器上,等等。入侵预防/响应将是诸如速率限制、延迟、一旦发现漏洞就关闭服务器等。
现在看看您的问题:,由于计算能力的增加,可以实现哪些不容易受到攻击的蛮力保护方案?
我的答案是:none。除非有人建造了一台量子计算机,或者一位数学家对群论进行了扩展,使我们所有的头脑都从头脑中消失,否则any和所有的“蛮力保护方案”将很容易受到不断增长的计算能力(尤其是分布式处理,如云服务器或机器人网)的影响。
似乎你的恐惧是暴雪的例子,在那里数据库被访问,哈希密码被黑客看到。如果有人有哈希,并且知道你的盐类/散列程序,那么他们得到密码只是时间问题。在这一点上,我们只讨论加密,因为其他一切都是已知的和/或无意义的。
这是一个数学问题:密码越长越复杂,这是一个数量级的增加,而且随着每个字符的增加,这个问题就成了指数。但是如果你以指数方式增加了蛮力算法的计算能力,你就回到了起点。
如果黑客掌握了存储在数据库中的散列,那么立即锁定数据库,找出他们是如何进入的,修复安全漏洞,并在身份验证过程中添加一个步骤,用新的身份验证过程更新数据库,并打开所有内容。
换句话说,确保您的身份验证服务器/数据库在每个级别上都是安全的,这样黑客就无法访问它。
如果你只想“争取更多的时间”,那就增加复杂性。但是请记住,这并不会使您的数据库更加安全。最好先分析一下如何锁定数据库,以防止有人首先获得哈希。
https://stackoverflow.com/questions/11942756
复制相似问题