【问题标题】:Signature/Hash Choice for File Integrity Verification文件完整性验证的签名/哈希选择
【发布时间】:2013-05-18 02:52:41
【问题描述】:

对于文件存储库,我需要选择能够合理确保文件完整性的散列算法。

我需要一种算法,任何人(稍加努力)都可以轻松使用它来验证给定哈希的完整性。简而言之,文件可能会与哈希一起传输给用户,他们必须能够验证哈希是否来自文件。

我的首选是 MD5,因为似乎有广泛可用的实用程序来验证 MD5 哈希,但我担心 MD5 算法被密码破解(参考 Wikipedia/US-CERT:http://en.wikipedia.org/wiki/MD5

我的第二个选择是 SHA-2 算法,但我担心可以轻松验证哈希的实用程序的可用性。我发现的大多数示例都显示了评估哈希的程序代码,但我发现很少(如果有的话)预先构建的实用程序(要求用户构建自己的实用程序超出了“轻松”范围)

还有哪些其他选项可用于生成和评估文件哈希,或者这两个选项是最好的?

【问题讨论】:

  • 在这种情况下,第二个原像似乎是相关的攻击。没有已知的方法可以有效地找到 MD5 的第二个原图像。
  • @CodesInChaos 定义有效。如果它可以低效地完成,那还不是一个问题。
  • @weston 在这种情况下,它是 >2^120 MD5 调用,即完全不可行。
  • 第二次原像攻击已经完成。由于该算法的固有弱点,您不能再依赖需要其理论最大值的 MD5。这就是人们说 MD5 被加密“破解”时的意思。 th.informatik.uni-mannheim.de/people/lucks/HashCollisions 这些攻击依赖于能够用任意数据填充其损坏的数据以强制发生冲突。
  • @CodesInChaos 请解释“在这种情况下,它是 >2^120”,您从问题中得出的信息是什么?

标签: security hash sha


【解决方案1】:

提供两个/多个,并让用户决定他们验证哪个。或者,如果他们真的很谨慎,他们可以验证两者/全部。

已经看到下载网站使用这种方法。一个站点推荐了最安全的站点,但提供了其他站点,例如 md5 作为后备。它还提供了工具的链接。恐怕不记得具体的网站了。

【讨论】:

    【解决方案2】:

    既然您已经找到了一些文件检查器,为什么不将它们作为推荐链接呢?这样,您的用户至少可以使用一种工具。他们不需要几十种不同的文件检查实用程序,他们只需要一种适用于您选择使用的算法。

    您可以链接到的工具: 窗户:http://securityxploded.com/download-hash-verifier.php Mac OS X:http://www.macupdate.com/app/mac/31781/checksum

    【讨论】:

    • 这又需要信任这些程序
    • +1 了您的评论,因为这是需要注意的。但是,如果您遵循这种推理,您将需要用户编写他们自己的编译器……这一直是信任。
    • 为了方便起见,我很乐意推荐用户使用预构建的实用程序,而那些需要额外安全性的用户也将知道如何使用自己的工具来确保安全性。估计有 95% 的用户“我不关心文件完整性”,其余的则混合了“我可以检查一下”和“我将构建自己的工具来验证”。
    • 还有@kander,如果帮助页面上没有其他内容,我肯定会链接到建议的工具。感谢您的建议!
    【解决方案3】:

    sha256sum,Linux 上coreutils 包的一部分的程序将为列出的文件生成校验和。校验和输出的格式与md5sum 程序的格式相同(但当然使用SHA-256 散列而不是MD5),该程序已广泛使用多年。您没有列出任何目标平台,但快速谷歌搜索显示有命令行程序的 Windows 端口。

    如果您需要生成大量校验和,可以使用 md5deep,它还支持其他哈希,包括 SHA-256。 http://md5deep.sourceforge.net/

    我还没有尝试过,但从屏幕截图来看,它看起来非常整洁地集成到了 OSX 和 Windows 资源管理器中:http://implbits.com/HashTab.aspx

    【讨论】:

    • HashTab 看起来很不错,我一定会把它添加到工具列表中。我在最初的搜索中也没有找到它,所以我的 Google Skillz 一定很烂......
    猜你喜欢
    • 2018-06-10
    • 1970-01-01
    • 2014-12-10
    • 1970-01-01
    • 2013-04-19
    • 2014-02-06
    • 1970-01-01
    • 1970-01-01
    • 2020-11-01
    相关资源
    最近更新 更多