Открыть сервис

Атака SHAttered

Атака SHAttered — это первая в истории публично продемонстрированная практическая коллизионная атака на криптографическую хеш-функцию SHA-1, в результате которой были найдены два различных набора данных (PDF-файла), имеющих одинаковый 160-битный дайджест (хеш-сумму). Атака была осуществлена исследовательской группой компании Google совместно с сотрудниками голландского Центра математики и информатики (CWI) и впервые представлена публике 23 февраля 2017 года.

История

Предпосылки

Криптографическая хеш-функция SHA-1 (Secure Hash Algorithm 1) была разработана Агентством национальной безопасности США (NSA) в 1995 году и на протяжении десятилетий являлась одним из самых распространённых алгоритмов для обеспечения целостности данных, цифровых подписей и аутентификации. Однако уже к началу 2000-х годов теоретическая стойкость SHA-1 начала вызывать сомнения. В 2005 году группа криптографов под руководством Ван Сяоюня (Wang Xiaoyun) опубликовала теоретическую атаку, снижающую сложность нахождения коллизии с 2^80 (полный перебор) до 2^69 операций. В последующие годы сложность атаки последовательно снижалась: в 2015 году Марк Стивенс (Marc Stevens) из CWI предложил метод, требующий 2^57,5 операций, а в 2016 году — 2^55,1.

Демонстрация атаки

Атака SHAttered стала результатом многолетней работы, объединившей усилия Google (команда безопасности и команда Chrome) и CWI. Для её проведения потребовались значительные вычислительные ресурсы: 9,223×10^18 операций SHA-1, что эквивалентно примерно 110 годам работы одного графического процессора (GPU) или 6500 годам работы одного центрального процессора (CPU). В реальности вычисления были распределены между несколькими кластерами Google и заняли несколько месяцев.

23 февраля 2017 года исследователи опубликовали два различных PDF-файла (один — с белым фоном, другой — с цветным), которые имели одинаковую SHA-1-хеш-сумму. Файлы были созданы таким образом, что их содержимое различалось визуально, но алгоритм хеширования выдавал идентичный результат. Это стало первым публичным доказательством возможности практической коллизии SHA-1.

Технические детали

Принцип атаки

Атака SHAttered относится к классу атак на основе дифференциального криптоанализа. Она использует метод «выбора префикса» (chosen-prefix collision), при котором злоумышленник может заранее задать начальные части двух сообщений, а затем вычислить дополнительные блоки данных, приводящие к коллизии. В случае SHAttered исследователи использовали 64-байтовый блок данных, который добавлялся к каждому из двух PDF-файлов, чтобы их хеши совпали.

Сложность и ресурсы

Для проведения атаки потребовалось:

  • 9,223×10^18 операций хеширования SHA-1.
  • 6,5×10^15 байт (6,5 петабайт) промежуточных данных, сохранённых на дисках.
  • Распределённые вычисления на нескольких кластерах Google (включая GPU-ускорители).
  • Специализированное программное обеспечение, разработанное для оптимизации поиска коллизий.

Результат

Исследователи создали два PDF-файла, которые:

  • Имеют одинаковую SHA-1-хеш-сумму: 38762cf7f55934b34d179ae6a4c80cadccbb7f0a.
  • Различаются визуально: один файл содержит белый фон, другой — цветной.
  • Имеют одинаковый размер (около 1,5 МБ).
  • Содержат идентичные метаданные и структуру PDF.

Последствия

Криптографическая безопасность

Атака SHAttered продемонстрировала, что SHA-1 больше не может считаться криптостойкой хеш-функцией. Хотя стоимость атаки (около 110 000 долларов США по оценкам Google на момент публикации) была относительно высока для индивидуального злоумышленника, она оказалась доступной для крупных организаций и государственных структур. Это означало, что SHA-1 стал уязвим для практических атак, в том числе для подделки цифровых подписей, сертификатов и целостности данных.

Реакция индустрии

После публикации атаки SHAttered большинство крупных технологических компаний, включая Google, Microsoft, Mozilla и Apple, ускорили процесс отказа от SHA-1. В частности:

  • Google Chrome начал блокировать сайты, использующие SHA-1-сертификаты, с 2017 года.
  • Microsoft выпустила обновления для Windows, отключающие поддержку SHA-1 в системных компонентах.
  • Mozilla Firefox прекратил доверять SHA-1-сертификатам с 2017 года.
  • Браузеры и операционные системы начали требовать использования SHA-2 или более новых алгоритмов (например, SHA-3).

Научное значение

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

Критика и ограничения

Несмотря на значимость, атака SHAttered имела ряд ограничений:

  • Она требовала выбора префикса, что ограничивало её применение в реальных сценариях атак (например, для подделки существующих документов).
  • Стоимость атаки оставалась высокой для массового использования.
  • Атака не затрагивала другие криптографические примитивы, такие как SHA-2 или SHA-3, которые оставались стойкими.

Интересные факты

  • Название «SHAttered» является игрой слов: «SHA» (сокращение от SHA-1) и «shattered» (англ. «разбитый, разрушенный»), что символизирует крах доверия к алгоритму.
  • Один из созданных PDF-файлов был опубликован с открытым исходным кодом для проверки коллизии.
  • Атака SHAttered была удостоена премии Levchin Prize за вклад в криптографию в 2018 году.

Источники

  • Stevens, M., Bursztein, E., Karpman, P., Albertini, A., & Markov, Y. (2017). The first collision for full SHA-1. Proceedings of the 37th Annual International Cryptology Conference (CRYPTO 2017).
  • Google Security Blog (2017). Announcing the first SHA-1 collision.
  • CWI (2017). SHAttered: The first practical collision for SHA-1.
  • Wang, X., Yin, Y. L., & Yu, H. (2005). Finding collisions in the full SHA-1. Proceedings of the 25th Annual International Cryptology Conference (CRYPTO 2005).

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →