Написать пост

SHA-1 сдаёт позиции: в Google смогли получить первую коллизию SHA-1

Аватар Глеб Умаров

Хеши играют важную роль в безопасности браузера, управлении репозиториями с кодом и даже распознавании дублирующихся файлов. Хеш-функции сжимают огромные количества данных в небольшие строки. Одно из требований к методам шифрования гласит, что поиск двух сообщений, которые одинаково выглядят в зашифрованном виде, должен быть невозможным. Однако со временем это требование может быть нарушено, либо из-за вывода теоретического способа его обхода, либо из-за повышения вычислительных мощностей систем. 

Сейчас, спустя 10 лет после появления SHA-1, Google представила практический способ создания коллизии. Это результат двух лет совместных исследований Центра математики и информатики и поискового гиганта.

Google настаивала на упразднении SHA-1 в течение нескольких лет, особенно в контексте подписи сертификатов. Еще в 2014 году команда Chrome объявила о прекращении использования SHA-1. Google надеется, что данные предупреждения наконец-то убедят IT-компании в необходимости перехода к более безопасным альтернативам вроде SHA-256.

Что такое «коллизия криптографического хеша»?

SHA-1 сдаёт позиции: в Google смогли получить первую коллизию SHA-1 1

Коллизия происходит, когда два независимых файла, будь то документы, бинарные файлы или сертификаты сайтов, в результате хеширования выглядят одинаково, как показано на рисунке выше. На практике коллизии защищённых хеш-функций происходить не должны. Однако, если в хеш-алгоритме присутствуют уязвимости, а в SHA-1 они есть, то появляется возможность создать коллизию. Затем взломщики могут использовать полученную коллизию для подмены файла его заражённым «двойником».

И как найти коллизию SHA-1?

Для этого Google создала PDF-документ определённого формата, содержимое которого различается, но в зашифрованном виде выглядит одинаково. Однако практический этап реализации куда сложнее теоретического. Стоит отметить, что это одна из самых сложных вычислительных операций, произведённых компанией.

Предоставляем вам цифры, которые дадут вам представление о том, насколько масштабными были подсчеты:

  • 9 квинтиллионов (9 223 372 036 854 775 808) вычислений хешей SHA-1;
  • 6500 лет вычислений на центральном процессоре для завершения первой фазы атаки;
  • 110 лет вычислений на графическом процессоре для завершения второй фазы.
SHA-1 сдаёт позиции: в Google смогли получить первую коллизию SHA-1 2

Несмотря на то, что цифры выглядят очень большими, такая SHA-1 атака в 100 000 раз быстрее брутфорс-атаки.

Как уменьшить риск такой атаки?

Специалистам по безопасности стоит перейти на более надёжные алгоритмы, например, SHA-256 и SHA-3. Через 90 дней Google выложит код, который позволит каждому создать пару одинаковых PDF-файлов, имеющих одинаковые хеш-суммы. Для защиты от таких атак Google встроила систему распознавания PDF-коллизий в Gmail и GSuite. Кроме того, компания предоставила всем желающим открытый доступ к этой системе.

Исследователи подчеркнули, что система управления версиями Git, созданная Линусом Торвальдсом, использует SHA-1 для проверки целостности файловых объектов и коммитов.

Линус не выразил беспокойства по этому поводу. Он пояснил, что Git не просто хеширует данные, а сперва добавляет к ним поле типа/длины. Это существенно усложняет атаку методом коллизии.

По поводу судьбы SHA-1 в Git Торвальдс оставил следующий комментарий:

Я очень сомневаюсь, что Git в качестве системы управления версиями пришел конец. Хотим ли мы перейти на другой хеш? Да. Действительно ли все кончено для SHA-1, как заявляют многие? Скорее всего, нет.
Безопасность
Google
Браузеры
7126