Loading AI tools
Из Википедии, свободной энциклопедии
Коллизионная атака в криптографии — поиск двух различных входных блоков криптографической хеш-функции, производящих одинаковые значения хеш-функции, то есть коллизию хеш-функции. В отличие от атаки нахождения прообраза, значение хеш-функции не выбирается специально.
Ориентировочно[уточнить] существует два различных вида коллизионных атак:
Коллизионная атака находит два разных сообщения m1 и m2, таких, что . В классическом случае атаки злоумышленник не имеет никакого контроля над содержанием сообщений, но они произвольно выбираются алгоритмом. Многие симметричные криптосистемы уязвимы для атак полного перебора (методом «грубой силы»), любая криптографическая хеш-функция по определению уязвима для атаки «дней рождения». Из-за парадокса дней рождения последний метод атаки может быть гораздо быстрее, чем метод перебора. Хеш из N бит может быть нарушен 2n/2 раз (вычислением хеш-функции). Наиболее результативные атаки возможны при использовании криптоанализа к конкретной хеш-функции. Когда коллизионная атака оказывается быстрее, чем атака «дней рождения», хеш-функции часто осуждаются как «сломанные». Создание хеш-функции SHA-3 (конкурс) было во многом вызвано необходимостью замены старых функций MD5[1] и SHA-1. Коллизионные атаки против алгоритма MD5 улучшились настолько, что на обычном компьютере они займут лишь несколько секунд времени.[2] Коллизии хеш-функций, созданные данным способом, как правило, постоянной длины и в значительной степени неструктурированны, поэтому не могут быть применены напрямую к атаке распространённых форматов документов или протоколов. Тем не менее, обходные пути возможны при злоупотреблении динамическими конструкциями присутствующими во многих форматах. Таким образом, будут созданы два документа, идентичные друг другу настолько, чтобы у них было одинаковое значение хеш-функции. Если один документ будет подписан доверенным лицом, его подпись может быть скопирована в другой файл. Такой вредоносный документ будет содержать два разных сообщения в одном и том же документе, но при этом сможет отобразить любое из них через небольшие изменения в файле:
Результатом усовершенствования коллизионной атаки стала коллизионная атака с заданным префиксом, предназначенная для структуры Меркла — Дамгарда. В этом случае злоумышленник может выбрать 2 случайных разных документа и затем дополнить их 2 разными вычисленными значениями, чтобы в результате эти 2 документа имели одинаковое значение хеш-функции. Эта атака более серьёзна, чем её классический вариант.
Говоря математически, имеются 2 различных префикса p1, p2, вычисляются 2 их дополнения m1 и m2 такие, что hash(p1 ∥ m1) = hash(p2 ∥ m2) (где ∥ операция конкатенации).
В 2007 году была создана коллизионная атака хеш-функции MD5 с заданным префиксом, требующая примерно 250 вычислений функции MD5. В заметке было представлено два сертификата X.509 для разных доменных имён, имеющих одинаковые хеш-функции. Это значит, что сертификатом одного доверенного домена может пользоваться другой неизвестный домен.[5]
Реальная коллизионная атака была опубликована в декабре 2008 года, когда группа исследователей безопасности опубликовала поддельный сертификат подписи X.509, который может использоваться для анонимной авторизации сертификата, воспользовавшись коллизионной атакой с заданным префиксом хеш-функции MD5. Это означало, что злоумышленник может подменить любой TLS-защищенный веб-сайт как посредник, тем самым нарушая сертификат валидации построенной в каждом веб-браузере для защиты электронной коммерции. Фальшивый сертификат не может быть отозван доверенными лицами, он может также иметь произвольную величину истечения времени. Несмотря на найденные в 2004 году слабости MD5,[1] в декабре 2008 выяснилось, что многие до сих пор используют сертификаты с данной хеш-функцией,[6] и как минимум Microsoft ещё использовал её в мае 2012 года.
В Flame вредоносные программы успешно использовали новую вариацию коллизионную атаку с заданным префиксом для спуфинга подписи кода компонентов с помощью корневых сертификатов Microsoft, до сих пор использовавших скомпрометированный алгоритм MD5.[7][8]
Многие приложения с криптографическими хеш-функциями не нуждаются в защите от коллизий[англ.], а коллизионные атаки не способны обойти их защиту. Например, HMAC не подвергаются подобного рода атакам.[9] Для успешной атаки злоумышленник должен иметь контроль над входными данными.
Поскольку алгоритмы с электронной подписью не могут эффективно подписать большой объём данных, многие дополнения используют функции сжатия данных для их подписи фиксированного размера. Схемы с электронной подписью часто подвержены коллизиям, несмотря на то, что они используют технику случайного хеширования.[10]
Обычно атака проходит следующим образом:
В 2008 году исследователи провели атаку на MD5 с заданным префиксом, используя сценарий выше, для создания поддельного сертификата. Они создали 2 версии TLS сертификата открытого ключа, один из которых был заверен для авторизации в RapidSSL. Другая версия, имеющая такое же значение хеша MD5, содержала флаги, сигнализирующие браузеру о доверенности и праве выдавать доверенность другим сертификатам[11].
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.