git 源码管理系统是基于 sha‑1 哈希算法,git 库储存的不同对象类型都使用 sha‑1 哈希来进行识别。linus torvalds 在设计 git 时并没有考虑 sha‑1 有一天可能会不安全,他没有设计能切换到不同哈希算法的功能,而哈希类型深入到代码之中。
但 sha‑1 已经迟暮,google 在 2017 年宣布了对 sha-1 哈希算法的首个成功碰撞攻击。所谓碰撞攻击是指两个不同的信息产生了相同的哈希值。
今年早些时候,研究人员将攻击成本降至 4.5 万美元,未来几年攻击成本还会继续下降。使用 sha-1 的项目需要尽快切换到更安全的哈希算法。
在考虑了多个替代之后,git 社区在 2018 年宣布它的下一代哈希算法将是 sha‑256。对小的项目来说,过渡到 sha‑256 比较容易,但对 linux 内核这样庞大的项目来说,这并非轻而易举。
试用申请