Security 储存食盐+;数据库中的密码散列和密码攻击防护

Security 储存食盐+;数据库中的密码散列和密码攻击防护,security,hash,cryptography,dictionary-attack,Security,Hash,Cryptography,Dictionary Attack,请帮助我理解。我也不是在谈论SSL或DH密钥交换。 由于salt存储在DB中,攻击者只需保护用户原始密码(Rainbow表)即可将其作为机密,以防攻击者获得实际DB本身。那么,您将如何防范基于暴力/字典的攻击。再一次,记录错误的请求并拒绝许多错误请求的IP是众所周知的,我在这里谈论的是密码学。由于user1的密码相同,攻击者从其他网站获得该密码,salt如何在此处进行保护。我想不会,那么有什么最好的解决方案可以阻止这种攻击呢。假设数据真的很重要,比如信用卡号+CVV(我知道不存储CVV,但这不是

请帮助我理解。我也不是在谈论SSL或DH密钥交换。 由于salt存储在DB中,攻击者只需保护用户原始密码(Rainbow表)即可将其作为机密,以防攻击者获得实际DB本身。那么,您将如何防范基于暴力/字典的攻击。再一次,记录错误的请求并拒绝许多错误请求的IP是众所周知的,我在这里谈论的是密码学。由于user1的密码相同,攻击者从其他网站获得该密码,salt如何在此处进行保护。我想不会,那么有什么最好的解决方案可以阻止这种攻击呢。假设数据真的很重要,比如信用卡号+CVV(我知道不存储CVV,但这不是问题)

编辑:顺便说一下,我想出了一些愚蠢的主意,它看起来像是阻止字典攻击的已知方法。阅读更多有关此问题的信息:


也许我们可以在这里讨论一些其他方法,以防止暴力/字典/社会工程密码攻击

关于salt:如果您使用谷歌等搜索引擎搜索“MD5”加密密码,您可能会在这里找到原始的普通密码。但是如果你在普通密码中混入盐,然后应用“MD5”加密,你将无法找到它。如果任何黑客以任何方式攻击您的数据库,并且您仅使用MD5加密,那么他可能会使用上述方法攻击密码。例如,在谷歌上搜索此字符串:5f4dcc3b5aa765d61d8327deb882cf99,您将获得原始密码字符串。盐的添加主要是为了防止这种攻击


退房。在这里只看内容和概念就可以理解了。这是来自Spring安全文档。

关于salt:如果您使用谷歌等搜索引擎搜索“MD5”加密密码,您可能会在这里找到原始的普通密码。但是如果你在普通密码中混入盐,然后应用“MD5”加密,你将无法找到它。如果任何黑客以任何方式攻击您的数据库,并且您仅使用MD5加密,那么他可能会使用上述方法攻击密码。例如,在谷歌上搜索此字符串:5f4dcc3b5aa765d61d8327deb882cf99,您将获得原始密码字符串。盐的添加主要是为了防止这种攻击


退房。在这里只看内容和概念就可以理解了。这来自Spring security docs。

如果没有salt,攻击者可以使用脱机攻击预先计算常用密码的哈希值:“secret”“qwerty”等。salt不允许攻击者知道不同用户何时使用相同的密码,因为他们将使用相同的哈希值。Salt可以防止预计算并避免匹配哈希问题

可以访问datbase的攻击者也可以访问盐。由于不同的密码,她需要分别攻击每个密码


使用拉伸(重复散列)也可以减慢攻击者的速度。您存储的不是
散列(密码+盐)
而是
散列^n(密码+盐)
,其中
n
足够大,整个计算至少需要0.1秒。这将攻击者限制在每秒10次左右的尝试,同时对用户没有明显的影响。

如果不使用salt,攻击者可以使用脱机攻击预先计算常见密码的散列:“secret”“qwerty”等。salt不允许攻击者知道不同用户何时使用相同的密码,因为它们将有相同的散列。Salt可以防止预计算并避免匹配哈希问题

可以访问datbase的攻击者也可以访问盐。由于不同的密码,她需要分别攻击每个密码


使用拉伸(重复散列)也可以减慢攻击者的速度。您存储的不是
散列(密码+盐)
而是
散列^n(密码+盐)
,其中
n
足够大,整个计算至少需要0.1秒。这将攻击者限制在每秒10次左右,同时对用户没有明显影响。

salt的目的不是防止字典攻击;它是为了防止预计算攻击,如彩虹表。拥有salt需要攻击者在访问数据库后单独攻击每个密码;他们不能预先计算字典中密码的哈希值,也不能跨用户重复使用这项工作


密码拉伸是一种使字典攻击更加困难的方法,它增加了攻击者测试每个候选密码的工作量。

salt的目的不是防止字典攻击;它是为了防止预计算攻击,如彩虹表。拥有salt需要攻击者在访问数据库后单独攻击每个密码;他们不能预先计算字典中密码的哈希值,也不能跨用户重复使用这项工作


密码拉伸是一种使字典攻击更加困难的方法,它增加了攻击者测试每个候选密码所需的工作量。

我不太清楚您的实际问题是什么,但如果是“salt如何帮助保护我免受暴力攻击?”的话,答案是从技术上讲它没有。salt并没有使暴力攻击变得更加困难,相反,salt使同时对多个帐户进行暴力攻击变得困难。本质上,盐人为地膨胀了进行暴力攻击所需的搜索空间,使得预先计算每个可能的密码,然后对照整个数据库检查密码在计算上变得困难。只要每个密码都是唯一的,盐就可以存储在clear中

如果您想使强制使用密码变得更加困难,您需要的是一个自适应哈希方案。这些方案允许您指定散列需要多长时间。因为一个诚实的客户应该