7

嘿只是一个简单的问题,因为我试图更多地了解哈希函数,我知道它们是如何工作的以及它们做什么,但是它们有多安全?

我会很感激一个简单的答案而不是链接,因为我从来没有发现它们有用。

4

3 回答 3

24

以现在的技术,两者都可以破解。还有一些散列字典可以帮助找到散列对短字符串的含义。

它们是否安全,很大程度上取决于您要保护的内容。如果您正在构建网上银行系统,则根本不推荐使用它们(取决于他们在网上银行系统中使用的位置)。例如,如果你只是为了在线用户密码散列来实现它们,它还取决于:你的网站是否值得破解,你有多少用户等。

一般建议是首先研究您希望在您的场景中实现的安全级别,并决定您使用哪些技术(在这种情况下是散列)。也没有 100% 的安全性。也不要在一个安全问题上投入太多时间,而忽略其他可能不那么明显或技术性的问题(人为错误、默默无闻的安全性、人为工程)。

看一下这个:

  1. 在这里为一个小词生成哈希。例如,password具有 MD5 哈希:5f4dcc3b5aa765d61d8327deb882cf99
  2. 现在去这里问回文本。

上面的例子只是破解它们的众多(字典攻击)可能方法之一。此外,每种安全算法的维基百科文章都会为您提供漏洞列表。

另见:

边注

永远不要让网站为您拥有的真实密码生成哈希值(以防您在某处出于测试或其他原因需要它)。始终使用测试密码,或在本地计算机上生成哈希。构建哈希数据库的人(黑客与否)也提供用于捕获哈希的在线哈希工具。

于 2013-05-23T12:30:54.477 回答
1

这是MD5和SHA1的比较。您可以清楚地了解哪个更好。

在此处输入图像描述

于 2016-05-15T06:12:17.180 回答
1

在讨论哈希安全与蛮力时,我们不应该考虑更多吗?

首先,md5 混淆数据是否存储在受信任区域中。换句话说,我们是否相信我们的数据库管理员不会尝试从数据库中读取用户密码并暴力破解它们。这可以通过一些安全程序获得信任或技术授权(db admin 可能无权访问存储密码哈希的表,这可能仅供安全人员访问)。

另一种是从客户端或客户端-服务器事务劫持登录+密码哈希对的可能性。如果客户端中没有特洛伊木马,并且客户端和服务器之间的通信是 TLS 安全的,则该对应该是安全的,不会受到中间人攻击。

留给攻击者的是(除了社会工程、xss 和托管安全漏洞)随后将生成的请求数量发送到登录服务器并查看一个是否成功。这也可以管理:

  • 在成功和不成功登录之后,在服务响应减慢蛮力过程之前可能会有一些随机延迟时间
  • 登录过程可以将来自相同 IP 的并行登录请求和具有相同登录名的并行登录排队(以强制执行上述规则)
  • 不成功登录可能会实施限制,超过后会锁定帐户并启动安全警报

我相信当实施上述规则时,md5 哈希是足够安全的。事实上,它和普通密码一样安全 :) 总而言之,如果我们相信我们的 md5 哈希是安全的,我们可以简单地让密码不被发现。扭曲的是,现在根本没有使用 md5(在密码混淆方面)。应该做的是将其保留在受信任区域的存储中,或者在不管理受信任区域时使用一些更强大的工具(如 SHA)。而且在我看来,受信任的区域仍然面临服务器(托管服务)安全漏洞的风险,所以无论如何简单地用 SHA(或更好)来混淆密码带来一些好处(降低风险),所以我的建议是永远不要再重新讨论这个讨论。

即使使用 SHA 散列,也应该实施所有口头安全规则。特别是 TLS,它可以防止破坏登录+密码对(无论密码是明文发送还是使用 md5 或 sha 散列,它都可以成功登录)。还应监控登录尝试。即使我们相信我们的网站是暴力破解的,也很高兴知道有人试图破坏安全性。

于 2016-10-27T06:12:34.127 回答