MD5与GPG签名比较

4
根据像apache这样的网站,使用GPG签名文件(生成校验和)比普通的MD5更安全。我不明白为什么大多数人还是使用MD5。能否用简单的技术英语解释一下实际区别?
1个回答

6
任何人只要能够访问一个文件,都可以生成MD5校验和。攻击者通过入侵网站或执行中间人攻击,很容易就可以更改MD5校验和,使其与被篡改的文件一致。
另一方面,GPG签名(理论上)只能由相应私钥的所有者生成。如果签名者位于你的信任网络中,则签名可以验证文件内容的完整性,并且证明密钥所有者为文件内容作出保证。
此外,在过去的几年中,MD5开始显示出一些弱点;GPG倾向于使用更更新的算法。
可能因为MD5更容易,所以MD5校验和仍然广泛使用。(SHA-1比MD5更好,而且越来越普遍。)
更新(四年后):现在应该认为MD5是不安全的,已经证明了具有相同SHA-1校验和的不同文件。有更好的校验和算法,但我不会推荐具体的算法;我猜想即使在这些算法被攻破之后,这个答案仍然会存在。

嗯...我认为现在是我们所有人转向使用gpg的时候了。 - LogicalConfusion
1
@LogicalConfusion:GPG和MD5有不同的目的。MD5只是一个给定文件的指纹,有时这就是你需要的。GPG/PGP签名必须由特定密钥的所有者制作--除非你可以访问该公钥,否则无法验证它。如果公钥在公共服务器上,则情况并不太糟糕,但这是您并不总是需要的额外开销。已知MD5相对较弱;SHA1更好,而新算法则更好。 - Keith Thompson
例如,Git使用SHA1校验和来标识内容;如果它使用GPG/PGP,就不会有特别的优势。而且,您始终可以PGP签名包含SHA1(或SHA-whatever)校验和的文件。(实际上,Git支持标签的GPG签名。) - Keith Thompson
非常好的观察,Keith。为文件生成pgp+sha1“指纹”肯定比普通的MD5校验和更安全。据维基百科称,有科学家已经成功破解了它。我不明白为什么distrowatch.com不使用gpg密钥来保护他们的iso文件。你甚至承认打破MD5相当容易。让我们看看distrowatch的管理员会说些什么... - LogicalConfusion

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接