【问题标题】:Do I need MD5 as a companion to SHA-1?我需要 MD5 作为 SHA-1 的伴侣吗?
【发布时间】:2019-04-26 09:41:39
【问题描述】:

我是否需要同时 MD5 和 SHA-1 值来确保下载的文件是

a) 不受黑客攻击。例如,当我需要通过种子下载某个应用的.iso

b) 在技术问题期间没有损坏?例如,下载过程中网络连接不稳定。

或者,SHA-1 值可能足以进行两项检查?

另外,SHA-1(没有 MD5)是否足以确保几年前下载并存储在我的硬盘上某处的某些文件没有degradated

【问题讨论】:

  • 这不是编程问题。但 2017 年初对 SHA-1 的攻击需要“相当于 6500 年单 CPU 计算和 110 年单 GPU 计算的处理能力”,所以 SHA-1 应该足够安全。

标签: security hash md5 sha1 sha


【解决方案1】:

从安全角度来看,MD-5 已完全损坏。

SHA-1 被认为是可疑的,并且尽可能避免用于大多数用途。对于新项目:根本不要使用它。

SHA-2(又名 SHA-256、SHA-512 等)仍然广泛用于快速哈希。

SHA-3 是自 2012 年以来的未来,没有什么能阻止您使用它。我认为没有理由不将它用于新项目。

旧的有什么问题:

  • 他们对发现冲突的抵抗力低于标准:这是攻击者创建 2 个具有相同哈希的内容。这些是同时构建的。 MD5 和 SHA-1 存在这个问题,而且很糟糕,但需要攻击者创建这两个版本(然后他们可以随时进行切换,以免被发现)。
  • 它们对长度扩展攻击的抵抗力相对较弱。对于 MD5 尤其如此,但 SHA-1 甚至 SHA-2 在某种程度上都会受到影响。

什么时候没有问题:为了确保您的磁盘没有产生错误:哈希可以,即使是简单的 CRC32 也可以创造奇迹(我推荐更简单的 CRC 检查),或者 RAID 阵列,如这些可以修复错误,而不仅仅是检测它们。

同时使用 ? 好吧,如果您必须在一个哈希上找到冲突并且相同的明文集也会在另一个哈希上产生冲突,那么可能会更困难。这种方法过去一直使用,最初的 PGP 做了类似的事情。如果我没记错的话,它计算了很多东西,其中之一就是长度(这可以防止上面的扩展攻击)。

所以是的,它可能会增加一些东西,但是 md5 和 SHA-1 和 SHA-2 在内部的工作方式非常相似,这是令人担忧的部分:它们太相似了,无法确定它对高度复杂的攻击者(想想 NSA 及其同行的水平)。

那么为什么不使用更现代的 SHA-2 版本之一,甚至更好的 SHA-3 呢?他们没有已知的弱点,并且已经过大量同行评审。因此,对于任何商业级用途,它们应该绰绰有余。

参考:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-17
    • 1970-01-01
    • 2011-04-11
    • 2023-03-12
    • 2022-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多