数据库是如何被黑客攻击的?关于腌制等问题

时间:2010-07-14 21:44:16

标签: php security salt brute-force

请耐心等待,我一直只学习PHP几周,所以示例代码可能会让我感到困惑。我想我终于明白了腌制!这是为了保护数据库中的密码,如果被破坏了。

我不明白的是,如果黑客试图找出用户的密码(假设这是他们的目标),为什么黑客必须破解哈希?这不容易吗?密码猜测的唯一防御是每天实施密码输入X次限制还是CAPTCHA?

首先如何将数据库入侵?是通过MySQL注入更多密码猜测还是哈希?

谢谢!

4 个答案:

答案 0 :(得分:4)

salting和hashing的想法是保护密码,以防数据库被泄露,无论是通过SQL注入,缓冲区溢出攻击还是仅仅通过进入服务器机房并拉动磁盘出你的服务器。 Salting不会保护您免受密码猜测,但有助于防止攻击者获取数据。

答案 1 :(得分:3)

是的,腌制是为了防止密码被反转为明文。它还阻止某人说“站点A上的加密密码与站点B上的密码相同,因此用户在两个地方都使用相同的密码”。

这不仅仅是为了保护用户免受黑客攻击;它也是为了保护他们免受

是的,防止密码猜测的唯一方法是减慢或禁止重复尝试。大多数CAPTCHA都是易碎的或破坏的,您不能对拥有原始数据库副本的人施加CAPTCHA或猜测限制。因此,即使加密数据也不会被恶意个人所控制。不要将它们放在.htpasswd或/ etc / shadow文件或数据库中。

如果你不使用salt,那么生成彩虹表(提前)比直接猜测一个非常强大的密码要容易得多。关键是构建反向映射hash->密码可以完成一次,并且(unsalted)哈希永远打破任何拥有彩虹表的人。

如果您的提供商遭到入侵,如果您的代码中存在注入漏洞,如果您的数据库用户帐户密码被猜到,如果您的提供商使用eBay销售(假定已擦除)的硬盘驱动器,则数据库可能被黑客入侵一个三年前的数据库副本......可能会发生很多种情况。

答案 2 :(得分:1)

这里的关键是,他们不会试图获取用户的密码以便在您的网站上使用,但是在您修复了可能有用的漏洞之后。如果出于某种原因,如果您的网站遭到入侵,则不会对您的用户造成任何损害。人们倾向于复制密码;那会很糟糕。

答案 3 :(得分:1)

这可能是愚蠢的,但许多人对不同的网站使用相同的密码。如果您的数据库被泄露并且密码被简单地散列,那么黑客可以使用技术(例如彩虹表,甚至几个网站)来找到导致相同散列的密码值。然后可以使用该密码尝试访问用户拥有帐户的其他站点。

如果您的数据库中的密码被腌制,那么这就变得非常困难......如果其他网站也使用不同的盐来限制他们的密码,那么对于黑客来说就变得不切实际了。