【问题标题】:I don't understand very good the benefits of the salt and hashed password in the client side我不太了解客户端的盐和散列密码的好处
【发布时间】:2015-12-23 08:52:17
【问题描述】:

我读过这篇文章:

https://crackstation.net/hashing-security.htm

据说在web应用程序中,总是需要在服务器中对密码进行hash,以确保hash正确。但是如果客户端对密码进行哈希处理并发送给服务器,服务器要做的是对密码进行哈希处理,那么如果服务器从客户端接收到的是哈希密码,服务器如何对密码进行哈希处理呢?

我的另一个疑问是需要执行的基本步骤:

  • 从数据库中检索用户的盐和哈希。
  • 将盐添加到给定密码并使用相同的哈希函数对其进行哈希处理。
  • 将给定密码的哈希值与数据库中的哈希值进行比较。如果它们匹配,则密码正确。否则密码不正确。

好吧,服务器从客户端获取密码,将盐与客户端密码一起使用,对其进行哈希处理并与数据库中的哈希密码进行比较。好吧,这个用户的盐总是相同的,它是从数据库中获取的,如果中间人得到密码,可以使用这个密码并在数据库中进行身份验证,因为服务器将使用盐并获得相同的哈希密码.所以不管是真实用户还是中间人,服务器都允许访问。

另一种选择是,如果服务器收到散列密码,它只需要从数据库中获取散列,因此它避免散列,节省资源。然后客户端而不是发送密码,而是发送散列密码,服务器将来自客户端的散列密码与数据库的散列进行比较。在这里,中间人也可以获得散列密码并使用它进行身份验证。最后,如果用户发送密码是一样的。

我没有看到加盐和散列密码的好处,因为如果中间人攻击连接,他可以在数据库中进行身份验证。所以我认为重要的是确保连接是安全的,然后以明文形式发送密码也是如此,因为连接是安全的。但也许我不明白一些事情,因为我知道加盐和散列密码是一种常见的做法。

如果一个攻击者可以访问数据库,我看到散列密码的唯一真正好处是,因为他无法从散列密码中获取密码,但是如果攻击者访问数据库,他可以访问所有信息,所以我猜不太重要的数据是密码。

出于这个原因,我想知道,安全连接还不够吗?因为如果攻击者可以访问连接,那么他可以访问密码并可以在服务器中进行身份验证。如果攻击者无法访问连接,那么为什么要在服务器中散列密码?散列密码是浪费资源,因为这是一个艰难的过程。

谢谢。

【问题讨论】:

    标签: security


    【解决方案1】:

    哈希算法是不对称的,这意味着您可以生成哈希,但从哈希到登录凭据要困难得多。

    将密码以不明确的形式保存在数据库中可防止不怀好意的人可以访问它以获取明确的密码并以用户身份进行身份验证。

    此外,攻击者不是通过访问数据库中的哈希密码记录来窃取帐户,而是通过访问服务器源代码来确定密码的生成方式,然后能够再生它。

    考虑到例如 firebug 允许您访问客户端源代码,您不想在客户端执行密码生成。

    PS:如果你实现了 SSL 和 HTTPS,那么你请求的数据包就会被加密。

    【讨论】:

      【解决方案2】:

      我们需要盐。当您尝试登录时,您会在客户端散列密码并将散列发送到服务器。他们将您的哈希值与他们的哈希值进行比较(他们仍然有您的明文密码)。

      如果攻击者在传输过程中捕获了您的哈希怎么办?一个好的哈希算法不会让他们从哈希返回密码,但是黑客可以使用彩虹表......他们可以尝试大量密码,直到找到具有相同哈希的密码。

      为了防止这种情况发生 - 攻击者无法找到您的密码 - 我们使用了随机盐。在散列之前,我们会在您的密码中添加一些随机内容,以便散列与您密码的散列不同。我们将新的哈希与盐以明文形式发送到服务器。服务器将盐添加到您的密码副本中并对其进行哈希处理。如果哈希与您发送给他们的内容匹配,则您登录。

      但由于盐总是在变化,攻击者将很难破解您的密码。

      【讨论】:

      • 但是如果你从客户端和服务器发送的哈希与数据库中的哈希比较,攻击者不需要知道密码,只需要发送哈希密码。如果服务器比较的是散列密码,为什么服务器有纯文本密码?
      • 盐使哈希变得不同。因此,如果他们得到哈希值,那将不会长久。明天,我们将有一个新的盐和一个新的哈希。
      猜你喜欢
      • 2015-02-17
      • 2015-08-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-10
      • 1970-01-01
      • 2015-08-06
      • 2017-04-28
      相关资源
      最近更新 更多