如果可以访问数据库,那么盐和散列有什么意义?

时间:2011-08-18 07:50:35

标签: security language-agnostic hash salt data-retrieval

我刚刚学会了散列的概念(“嘿!别忘了盐!”)并使用salt来确保密码安全。

散列它是一种单向加密(实际上不是加密而是散列)所以它不能被逆向设计。在散列之前,Salting正在为密码添加前缀或附加随机创建的值,因为哈希(只是哈希)中的问题是,某些天才提供了字典中的单词哈希表,以便他们只是将该字典中的哈希值与用户的表从数据库登录 - W-wait?我从数据库中说过表吗?所以这意味着有人可以访问数据库,所以我们必须使用salt?如果是这样,那么如果黑客已经有权访问数据库,为什么黑客会恢复密码呢?如果我是他,我会从数据库中获取我想要的所有细节,如果我可以通过窗户进入房子,我为什么要使用从房子里偷来的钥匙打开门?

那么,为什么哈希呢?为什么盐?我不明白。拜托,有人帮助我。

提前致谢。

重要提示:我不反对散列或腌制,我只是想澄清一些事情。

5 个答案:

答案 0 :(得分:11)

  

如果是这样,那么如果黑客已经有权访问数据库,为什么黑客会恢复密码呢?

原因很多。以下是一些:

  1. 人们重复使用他们的密码,因此不会泄漏每个人的真实密码会限制此类攻击的影响。

  2. 如果没有真正的密码,黑客仍然无法登录,也就是说,在黑客系统上发布新条目。

  3. 谁说所有信息都存储在数据库中?如果数据库仅由用户名和散列/盐渍密码组成,该怎么办?然后,了解内容并没有多大帮助。

答案 1 :(得分:4)

如果您拥有数据库中的明文密码和电子邮件地址,则可能会造成严重破坏!这不是要获取已被黑客攻击的网站的凭据,而是获取登录信息到其他网站。

大多数人不会仅为一个站点使用一个密码,因此如果您拥有其主要电子邮件地址的密码,您可能可以访问每个站点上的所有帐户(通过密码重置)。

答案 2 :(得分:4)

拥有数据库中的用户记录并不一定意味着您可以访问数据库。通过网站中的一些泄漏(你好,SQL注入),你可以访问你不应该访问的数据而不必损害整个服务器。处理不当的备份,共享服务器,无能或恶意的员工都可能做到这一点。

此外,也可能更重要的是,您需要保护客户的密码在其他网站上。不幸的是,人们无处不在地重复使用他们的密码。如果您的小聊天室数据库受到损害,那么他们银行网站上的人们密码可能会受到损害。

答案 3 :(得分:3)

使用Salt以便相同的密码具有不同的哈希值,从而尝试更难以识别密码。

Hashing使得通过强力方法生成密码需要很长时间(特别是使用SHA2),这样才能找到密码“不可行”。

如果您不知道密码,哈希对您没有好处,因为在密码字段中输入哈希将不起作用(显然)。

通常黑客只能查找用户表和一些基本信息,但如果他们希望能够实际访问该用户信息并更改某些内容,那么他​​们需要实际的密码(因为他们不知道整个数据库模式有什么变化可能看起来非常可疑并且很容易追踪,除非您合法地以人身份登录)

我忘记的最后一件事是人们会重复使用密码。所以也许你攻击了一些没有有用信息的随机网站,但是这个人在他们的网上银行使用了相同的用户/密码组合。这可能非常糟糕,因为您可以看到,因此无法轻易识别密码是关键。

答案 4 :(得分:1)

假设攻击者以某种方式获得对数据库备份的访问权限,其中包含不可恢复的散列密码。然后他们拥有昨天在那里的所有数据,这是非常糟糕的。但至少他们无法访问将在那里出现的数据,他们无法从真实网站删除任何内容,破坏它,通过其CMS提供恶意软件等。

假设攻击者获取每个人的明文密码,尤其是包含管理员的密码。糟糕。