Git — это содержательно адресуемая база данных, которая использует хеш-функции в качестве ключей для хранения содержимого файлов. На протяжении двух десятилетий Git полагался на SHA-1, алгоритм, выбранный Линусом Торвальдсом в 2005 году. SHA-1 выдает 160-битовый вывод, делая случайные коллизии математически маловероятными — для их возникновения требуется примерно 1,4 септиллион файлов. Однако криптографы опубликовали атаки на коллизии, наиболее notably SHAttered в 2017 году и SHA-1 is a Shambles в 2020 году. Хотя случайные коллизии практически невозможны, эти атаки демонстрируют, что умышленные коллизии теоретически возможны, хотя и дорогостоящи. В ответ предстоящий релиз Git 3.0 планирует переключить алгоритм хеширования по умолчанию с SHA-1 на более надежный SHA-256. Этот переход потребует от разработчиков обновления существующих репозиториев и инструментов, представляя значительные глобальные усилия ради изменения, которое обеспечивает лишь незначительные практические преимущества в безопасности для большинства пользователей. Этот переход представляет собой дорогостоящее глобальное усилие с niewielкой осязаемой выгодой для среднего разработчика.
Источник: Hacker News · Сводку подготовил HeadlinesBriefing