Git 3.0 默认改用 SHA-256 是一场昂贵的错误
来源: blog.gitbutler.com — 2026-10-02
概述
GitButler 创始人 Scott Chacon 公开反对 Git 3.0 把默认哈希算法从 SHA-1 换成 SHA-256。他认为这次迁移代价巨大、收益近乎为零:SHA-1 只是被半攻破,碰撞攻击理论上可行但要在现实里利用极难,而真正让恶意代码入库的手段从来是社工接管上游包,而不是烧钱造哈希碰撞。
核心要点
- Git 是内容寻址数据库,哈希既是对象的键,也让提交具备加密完整性;改默认算法等于让整个生态被迫迁移。
- SHA-1 的问题在于碰撞攻击可及,而非原像攻击;意外碰撞在数学上几乎不可能——需要约 1.4 万亿亿亿个随机文件。
- 现实中的恶意代码入库靠的是社工拿到 npm 包写权限,作者称造哈希碰撞是"把不可信代码塞进系统的最笨办法"。
- Linus 在 2005 年就说过真正的安全在分发渠道而非哈希本身;我们信任 GitHub 是因为它把认证做好了。
- 作者担心这次迁移之后量子计算若破掉 256,整个生态又要再来一遍,我们又会坐回同一艘蠢船。
金句
我真心认为人们不该把 sha1 当成"安全"。真正的安全在于分发。——Linus Torvalds, 2005
👍 0
👎 0
← 返回 Lobsters 首页