New Research: A "Verified" GitHub Commit Is Not Unique
4 days ago
- #Cryptography
- #Supply Chain
- #Git Security
- Git使用内容哈希值来唯一标识提交,供应链工具依赖这些哈希值作为已签名内容的不变名称。
- 一篇预印本揭示了哈希链的可塑性:攻击者可以创建一个具有相同树结构、元数据和有效签名的不同签名提交,仅改变哈希值,并影响后续提交。
- 该问题源于基于GPG的方案(ECDSA、RSA、EdDSA)和S/MIME中的签名可塑性,而非SHA-1碰撞等哈希函数缺陷。
- GitHub的服务器端验证接受这些可塑性签名而不进行规范化,为每个变体颁发‘已验证’徽章,且即使密钥后来被撤销,验证状态仍保留。
- 本地工具如git verify-commit表现出混合行为:接受某些可塑性签名,但拒绝GitHub接受的其他签名。