gpt4 book ai didi

security - MD5 是否不如 SHA 等安全?阿尔。在实际意义上?

转载 作者:行者123 更新时间:2023-12-03 21:45:15 26 4
gpt4 key购买 nike

我见过a few questionsanswers在SO上暗示MD5不如SHA之类的安全。

我的问题是,在我的情况下,这值得担心吗?

这是我如何使用它的示例:

  • 在客户端,我通过附加当前时间和密码然后使用 MD5 对其进行散列来为消息提供“安全”校验和。所以:MD5(message+time+password) .
  • 在服务器端,我使用我对发送时间和客户端密码的了解,根据发送的消息检查此哈希值。

  • 在本例中, 我真的最好使用 SHA 而不是 MD5 吗?

    在什么情况下散列函数的选择在实际意义上真的很重要?

    编辑:

    只是为了澄清 - 在我的示例中,转向 SHA 算法有什么好处吗?

    换句话说,在这个例子中,某人在不知道共享密码的情况下发送消息和正确的哈希值是否可行?

    更多编辑:

    为重复编辑道歉 - 我不清楚我在问什么。

    最佳答案

    是的,在实践中值得担心。 MD5 严重损坏 researchers已经能够伪造与证书颁发机构签署的真实证书相匹配的假证书。这意味着他们能够创建自己的虚假证书颁发机构,从而可以冒充他们认为的任何银行或企业,浏览器完全信任他们。

    现在,他们使用一组 PlayStation 3 花费了大量时间和精力,并花费了数周时间来找到合适的碰撞。但是一旦被破坏,哈希算法只会变得更糟,永远不会更好。如果您完全关心安全性,最好选择一个完整的哈希算法,例如 SHA-2 family 之一。 (SHA-1 也被削弱了,虽然没有像 MD5 那样严重)。

    编辑 :我为您提供的链接中使用的技术涉及能够选择两个任意消息前缀和一个公共(public)后缀,从中它可以为每个前缀生成一个数据块,该数据块可以插入该前缀和公共(public)后缀之间,以产生与从另一个前缀构造的消息具有相同 MD5 和的消息。我想不出在您描述的情况下可以利用此特定漏洞的方式,并且一般来说,使用安全工具 message authentication与将其用于数字签名相比,它更能抵抗攻击,但我可以想到一些您需要注意的漏洞,这些漏洞大多与您选择的哈希无关。

  • 如上所述,您的算法涉及将密码以纯文本形式存储在服务器上。这意味着您很容易受到任何能够在服务器上发现密码的信息泄露攻击。您可能认为,如果攻击者可以访问您的数据库,那么游戏就开始了,但即使您的服务器遭到入侵,您的用户也可能希望他们的密码不被入侵。由于在线密码的激增,许多用户跨服务使用相同或相似的密码。此外,即使在代码执行或权限提升攻击不存在的情况下,信息泄露攻击也可能是可能的。

    您可以通过将密码存储在用随机盐散列的服务器上来减轻这种攻击;您存放这对 <salt,hash(password+salt)>在服务器上,并将盐发送到客户端,以便它可以计算 hash(password+salt)用于代替您提到的协议(protocol)中的密码。但是,这并不能保护您免受下一次攻击。
  • 如果攻击者可以嗅探从客户端发送的消息,他就可以对客户端的密码进行离线字典攻击。大多数用户的密码具有相当低的熵,而一个包含几十万个现有密码的字典加上一些时间随机排列它们可以让攻击者根据嗅探消息获得的信息轻松找到密码。
  • 您提出的技术不会对服务器进行身份验证。我不知道这是否是您在谈论的网络应用程序,但如果是,那么可以在不安全的无线网络上执行 DNS 劫持攻击或 DHCP 劫持或任何类型的人都可以做一种中间人攻击,他们从您的客户端以明文形式收集密码。
  • 虽然当前针对 MD5 的攻击可能不适用于您描述的协议(protocol),但 MD5 已被严重破坏,哈希值只会变弱,永远不会变强。您是否想打赌您会发现可能对您使用的新攻击,并且在您的攻击者有机会利用它之前有时间升级哈希算法?从目前比 MD5 更强大的东西开始可能会更容易,以减少您不得不处理 MD5 被进一步破坏的机会。

  • 现在,如果您这样做只是为了确保没有人在论坛或其他地方伪造来自其他用户的消息,那么当然,任何人都不太可能花时间和精力来破坏您描述的协议(protocol)。如果有人真的想冒充其他人,他们可能只需创建一个新的用户名,用 0 代替 O 或使用 Unicode 甚至更相似的东西,甚至不用费心去伪造消息和破坏哈希算法。

    如果这被用于安全性真正重要的事情,那么不要发明自己的身份验证系统。只需使用 TLS/SSL .密码学的基本规则之一是 not to invent your own .然后,即使在论坛的情况下,它可能并不那么重要,使用现成的东西比滚动自己的东西更容易吗?

    关于security - MD5 是否不如 SHA 等安全?阿尔。在实际意义上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/770900/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com