密码盐如何提高安全性

niv*_*vis 2 hash salt password-hash

我试图了解密码盐如何提高安全性.基本上,对于每个用户密码,生成随机字符串,添加到密码然后进行散列.当用户登录时,系统为该特定用户获取salt,将其添加到密码,哈希并与存储的哈希值进行比较.

现在.我理解这是如何产生更长的密码/哈希值.我不明白是什么阻碍了自动化功能选择用户名,只是进行了大量的登录尝试 - 例如 - 一个网站,每次都有不同的密码.对我来说,似乎盐在那种情况下没有功能?

我确信我误解了这一点,如果有人能帮我理解,我会很高兴.

sim*_*ont 9

我不明白是什么阻碍了自动化功能选择用户名,只是进行了大量的登录尝试 - 例如 - 一个网站,每次都有不同的密码.对我来说,似乎盐在那种情况下没有功能?

正确.散列和腌制不会阻止暴力登录尝试.(为此,您希望限制每单位时间的登录尝试次数,或者在X次失败尝试后禁止).

散列和腌制用于防止被盗密码列表被破解(或者,增加破解所述列表所需的时间).

存储密码时,您有3个选项:纯文本,散列或散列+盐渍.如果我窃取您的密码列表:

  • 纯文本:我现在拥有所有用户的登录详细信息.我可以冒充他们了.(那很糟).
  • 散列:我可以使用彩虹表合理快速确定从哈希密码.(这也很糟糕).
  • 散列+盐渍:现在彩虹表不起作用.我必须花费更多的时间来破解每个密码.它仍然有可能,但它要困难得多(而且,除非你真的很重要,否则我可能不会打扰).请注意,这也让您有时间注意安全后膛并通知您的客户他们的密码被盗,并要求他们更改密码(所以即使我最终破解了散列+盐渍列表,我也无法使用它).

因此:哈希+ salting用于防止(或减慢)使用强力方法从被盗哈希中破解密码的尝试.

  • @simont是从数据库中获取的密码列表?如果是这样,是什么阻止了攻击抓住相关的盐? (2认同)