Git 哈希链可塑性
查看 PDF HTML(实验性)摘要:Git 提交签名被广泛认可为证据,表明提交哈希唯一且不可变地标识一段特定的签名内容。我们展示了这一不变性并不成立。给定任何已签名的提交,攻击者在没有访问签名密钥的情况下,并且没有破解 SHA2,可以生成第二个与之不同的提交,其树结构、元数据、有效签名和来自 Git Forge(如 Github)的 "已验证" 标记均相同,仅在于其提交哈希不同。修改后的提交级联修改所有后续、依赖提交的哈希值,因此我们引入了“哈希链可塑性”的术语来描述这一现象。已签名 Git 哈希的可塑性是由于构成提交的许多数据表示中固有的可塑性。在本文中,我们展示了三种这样的可塑性途径:(i)ECDSA 的代数反演 s -> n-s;(ii)对于 RSA 和 EdDSA 的未哈希 OpenPGP 子报文的结构插入(RFC4880 5.2.3);以及(iii)在 S/MIME 的 CMS 信封内的非标准 DER 长度重编码(X.690 10.1)。发现 ECDSA 签名的代数反演和子报文插入能够通过本地验证(git verify-commit),而所有三种方法在 Github 上产生持久的、独立的“已验证”记录。我们讨论了 Git 哈希链可塑性对基于哈希的提交阻塞、依赖固定(Nixpkgs,Go 模块,Github Actions)以及将提交哈希视为内容可寻址的主键的可重复构建系统的影响,并提供自动化所有三种途径的概念验证工具。评论:5 页 主题:密码学与安全(cs.CR) ACM 类别:D.2.3 引用为:arXiv:2607.02820 [cs.CR](或 arXiv:2607.02820v1 [cs.CR] 用于此版本) https://doi.org/10.48550/arXiv.2607.02820 arXiv 发布的 DOI 通过 DataCite(待注册) 提交历史 来自:Jacob Ginesin [查看电子邮件] [v1] 2026年7月2日 星期四 23:19:37 UTC(11 KB)
本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。
☕请我喝杯咖啡