Folia
← 返回头版

Git 3.0将SHA-256设为默认哈希算法,专家指迁移成本过高

Git 3.0版本计划将默认哈希算法从SHA-1改为SHA-2561。对此,开发者Scott Chacon表示这是一项不必要的举措1。

虽然2017年的SHAttered研究和2020年的"SHA-1 is a Shambles"论文证明了SHA-1存在理论碰撞攻击可能1,但Chacon指出,在160比特输出下,产生碰撞需要1.4万亿亿个随机文件1。他认为实际安全威胁有限,现实中的攻击更可能通过社会工程学手段获得npm包维护权,而非破解哈希1。相比之下,从SHA-1迁移到SHA-256将带来巨大代价——库将不兼容、所有40字符哈希链接失效、签名破裂1。

Chacon提出了替代方案:在签名对象中注入独立计算的SHA-256树哈希头,同时保留SHA-1作为内容寻址键1。这一方案可以在不改动整个Git生态的前提下增强内容信任验证1。独立校验的性能开销并不显著,Chromium树(35GB、2.1M文件)的验证耗时仅5秒,Linux树257毫秒,Git项目本身仅17毫秒1。此外,NIST 2030年的SHA-1停用期限仅适用于"密码学保护应用",而非存在于任何软件栈中1。


评论