首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ASP经典中密码的推荐散列

ASP经典中密码的推荐散列
EN

Stack Overflow用户
提问于 2008-10-31 14:19:16
回答 7查看 12K关注 0票数 4

在ASP经典中,密码的最慢(因此是最好的)哈希算法是什么?

编辑:对于那些不知道,当哈希密码,较慢的哈希,而不是更快,以帮助慢彩虹表风格的攻击。

EDIT2:当然,对哈希选择来说,速度并不是唯一有效的考虑因素。我的问题假设所有其他条件在哈希密码时都是相等的--首选最慢的散列方法。。虽然碰撞/逆向工程当然也是一个问题,但我在这个问题中优先考虑速度,因为在比较常用的哈希算法用于密码时,它可以说是最关键的考虑因素。

谢谢!

EN

回答 7

Stack Overflow用户

发布于 2008-10-31 14:37:27

很多人似乎都在追问这个问题,因为他在寻找一个缓慢的散列函数。实际上,所有其他方面都是相等的,较慢的哈希函数比快速的哈希函数更安全。这是因为较慢的哈希函数导致、更慢的彩虹表生成、、更慢的野蛮强制或字典攻击密码

来自http://www.securityfocus.com/blogs/262的Thomas,如本编码恐怖文章所引用

问题是MD5速度快。它的现代竞争对手也是如此,比如SHA1和SHA256。速度是现代安全散列的一个设计目标,因为散列是几乎每一个密码系统的构建块,并且通常是在每包或每条消息的基础上执行请求。 在密码散列函数中,速度正是您不想要的。 现代密码方案受到增量密码破解器的攻击。 增量破解器不会预先计算所有可能破解的密码。他们分别考虑每个密码哈希,并通过密码哈希函数提供字典,就像PHP登录页面一样。彩虹表破解器(如Ophcrack )使用空间攻击密码;增量破解器(如“开膛手约翰”、“破解”和“LC5”)与时间一起工作:统计和计算。 密码攻击游戏是在破解密码X所用的时间内得分的。使用彩虹表时,时间取决于您的表需要多大,搜索的速度有多快。使用增量破解器,时间取决于您能以多快的速度运行密码散列函数。 您可以更好地优化您的密码哈希函数,您的密码哈希函数获得的速度越快,您的方案就越弱。MD5和SHA1,甚至像DES这样的传统分组密码,都是为了快速设计的。MD5、SHA1和DES是弱密码散列。在现代CPU上,原始密码构建块(如DES和MD5 )可以被分割、矢量化和并行化,以便快速搜索密码。游戏式FPGA实现仅需数百美元。

一些对PHP MD5文档的注释还讨论了对慢度的偏好。

要回答你的问题,看来BCrypt是该走的路。但是,我还没有找到任何ASP经典的实现。如果是这样的话,我会坚持使用像SHA512这样的常规哈希函数。

票数 12
EN

Stack Overflow用户

发布于 2008-10-31 14:32:13

我会忽略慢的部分,而去“好”的部分。

我建议您使用SHA-512和salt来击败字典和彩虹表攻击。我不认为SHA-512存在任何已知的漏洞。

票数 5
EN

Stack Overflow用户

发布于 2008-10-31 14:29:15

如果您试图击败蛮力攻击,最好是执行一些失败的尝试窗口/计数,而不是依赖哈希(或哈希比较)机制的速度来使攻击成功所需的时间更长。在失败窗口中发生一定次数的失败尝试后,锁定帐户,并且只允许在大量时间过去之后进行新的尝试。

这可能使您对DOS攻击一个众所周知的(管理)帐户,但您可以豁免某些帐户的锁定策略,或有另一种方式--使用安全问题/答案-登录到一个锁定帐户在重置期已经过去。

编辑以帮助击败彩虹攻击--攻击者已经检索了您的散列密码,并找到了与相同值的哈希值相匹配的合适选项--考虑使用每个用户的散列密码所特有的随机盐和作为算法一部分的固定盐,而不是数据。例如:

代码语言:javascript
复制
  testHash = computeHash( user.salt + "98hloj5674" + password );
  if (testHash == user.hashedPassword)
  {
      valid = true;
  }

这将使彩虹表失效,因为即使知道用户的salt和哈希算法,攻击者彩虹表中的值也不会映射到您的散列密码上,因为算法中添加了固定的salt。

使用ASP,您必须在库中而不是在页面上这样做,以确保用户看不到您的固定盐分。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/253673

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档