可以采取哪些措施来防止受到破坏的密码数据库的暴力?

时间:2012-08-13 21:42:40

标签: security hash password-protection brute-force

鉴于暴雪最近的数据泄露,我想问一下暴力破解和盐渍密码存储。

Ars Technica has a good article为什么即使是暴雪存储的盐渍哈希密码也可以在短时间内破解。

由于使用了腌制和散列,我们知道蛮力攻击是破解“复杂”密码的唯一可行方法(字典/单词密码是微不足道的)......但Ars Technica提出了一个很好的观点计算能力的巨大提升(局部和云计算)使蛮力破解更加可行。

对于一个网站,Jeff Atwood notes强制延迟身份验证尝试可能会实际阻止暴力攻击......但在暴雪攻击的情况下,黑客可以对数据库进行物理控制,因此没有这样的可访问性可以施加限制。

因此,Jeff also recommends pass-phrases因为蛮力攻击者所面对的熵增加了......但是,随着计算能力变得越来越大,越来越容易被淹没。

所以问题是:可以实施什么强力保护方案,由于计算能力的提高而不易受到攻击?

通常会考虑两阶段身份验证,但我听说其中一些算法也被破坏了,物理身份验证器可能有静态算法,因此一旦破解,所有用户都会受到攻击。

适用于整个身份验证DB的计划滚动盐怎么样?这会增加很多开销,但即使在物理数据库泄露的情况下,它似乎也会安全。

1 个答案:

答案 0 :(得分:1)

安全性是一些事情的组合(除了这个列表之外还有很多东西,但不是把这篇文章变成一本书,我现在就把它保留在这些内容中):

  • 加密 - 复杂性;让人很难知道原始内容是什么
  • 混淆 - 不明确/受保护;使其他脚本/用户难以了解或猜测您的安全方案如何工作。
  • 入侵防御/响应 - 确定何时发生安全漏洞(或企图违规),并对事件做出响应

加密将类似于散列,盐,SSL,密钥等。混淆将是steganography之类的东西,使用旋转盐,将密码分离到没有脚本可以访问的另一个服务器等。入侵防御/响应将是速率限制,延迟,一旦发现漏洞后关闭服务器等等。

现在看看你的问题:由于计算能力的提高,可以实施什么强力保护方案?

我的回答:。除非有人建造量子计算机或者数学家以一种将我们所有人的思想都抛在脑后的方式对群体理论进行扩展,否则任何和所有“暴力保护计划”都将成为易受增加的计算能力(尤其是分布式处理,如云服务器或僵尸网络)。

似乎你的恐惧是暴雪的情况,数据库已被访问,黑客看到了哈希密码。如果某人有哈希,并且知道你的盐/哈希程序,那么他们获得密码只是时间问题。在这一点上,我们只谈论加密,因为其他一切都是已知的和/或没有实际意义。

这是一个数学问题:密码越长越复杂,这个数字的数量级越来越大,而且每个添加的字符都会成问题。但是如果你以指数方式增加蛮力算法的计算能力,你就会回到原点。

如果黑客获取了存储在数据库中的哈希值,那么请立即锁定数据库,弄清楚他们是如何进入的,修复安全漏洞,并在身份验证过程中添加一个步骤,使用新的身份验证程序并重新打开所有内容。

换句话说,请确保您的身份验证服务器/数据库在每个级别都是安全的,以便黑客无法访问它。

如果您只想“花更多时间”,那就增加复杂性。但请记住,这不会使您的数据库更安全。最好分析如何锁定数据库以防止某人首先获得哈希值。