Git 2.27 首个 RC 已发布,在这个版本中,开发者仍在努力将 Git 使用的安全哈希算法从 SHA-1 迁移到 SHA-256。
Git 使用 SHA-1 的主要目的是为相同数据生成唯一地址和检查完整性 (checksum),它通过 SHA-1 生成的哈希值来识别修订版本,从而保证数据的完整性。由于 SHA-1 算法已被宣布碰撞成功,出于安全考虑,Git 的多个分支都正在积极将安全哈希算法从 SHA-1 迁移到 SHA-256。事实上,Linus 并不担心 SHA-1 碰撞成功对 Git 的影响,但在听取社区的意见后,他同意替换 Git 中的 SHA-1 算法。
Git 公开的哈希算法迁移文档显示,Git v2.13.0 及更高版本默认情况下会迁移至加固的 SHA-1 实现,保证不易受 SHAttered 攻击。不过这不足以确保存储在 Git 上的对象的安全性,因此需要迁移至新算法。
迁移至 SHA-256 需要实现的目标:
- 不需要 Git 之外的任何一方进行操作
- SHA-256 仓库可以和 SHA-1 Git 服务器进行通信(用于推送/拉取)
- 用户可以在 SAH-1 标识符和 SHA-256 标识符之间选择
- 新的签名对象将使用比 SHA-1 更强大的哈希函数
- 可完全从 SHA-1 迁出,包括如果不再需要与 SHA-1 兼容,可删除本地元数据
- 保证迁移过程的可维护性:对象格式保持简单和一致、创建通用的仓库转换工具
迁移至 SHA-256 的目标还没有完成(或接近完成),其他的更新内容包括提供新的 SSL 配置选项、对不同子命令的随机更新、性能改进,以及大量的 bugfix。详情查看发布公告。
转自 https://www.oschina.net/news/115766/git-2-27-rc0-released