几周前,研究人员宣布了首例 SHA-1 碰撞。所谓碰撞是指两个内容不同的对象产生了相同的 SHA-1 哈希值。
在 Git 版本控制系统中,每个对象都以内容的 SHA-1 哈希值命名,如果试图向 Git 库里推送与现有对象 SHA-1 哈希相同的碰撞对象,接收者可以很容易通过对比源代码区分真假,所以对 Git 进行 SHA-1 碰撞攻击的方法被认为是首先创造出一对 SHA-1 哈希值相同的对象,然后让其中一个看似合法的对象获得合法签名,然后对外散播包含另一个恶意对象的版本,这个恶意版本的签名仍然与原始版本相同。
为了阻止此类的碰撞攻击,源代码托管平台 GitHub 宣布引入了 SHA-1 碰撞检测,检测 SHA-1 碰撞的攻击 sha1collisiondetection 已经开源。