Атака Shattered находит другой файл/сообщение B, который имеет тот же хэш SHA-1, что и файл/сообщение A, но только если какой-то раздел данных в A имеет характеристику, которая не может произойти случайно. Для большинства форматов файлов/семантики данных это по-прежнему допускает атаки злоумышленников, которые не могут изменить значение/внешний вид/эффект A, но могут незначительно повлиять на двоичное содержимое A.
У меня есть исходные данные A и хэш H (A) этого A. Возможно ли с помощью разрушенных документов Google создать новые данные B, которые выводят этот H (A)?
Ответ зависит от данных А, которые, в свою очередь, зависят от того, как было получено или произведено А, чего вопрос не устанавливает и не позволяет угадать.
- Да, без вычислительных усилий, если A начинается с одного из двух конкретных 320-байтовых значений, которые дала атака Shattered. Мы можем просто заменить одно на другое, чтобы сформировать B с тем же хешем SHA-1. Это можно (среди прочего) использовать для простого создания двух разных допустимых PDF-файлов с немного другим содержимым байтов и совершенно другим внешним видом.
- Нет, если A меньше примерно 125 байт, при использовании метода Shattered paper, даже с их вычислительными затратами. Но мы должны снизить этот предел примерно до 19 байт, если мы изменим метод и примем увеличение вычислительных усилий в скромный раз (около 250 тысяч) примерно до $2^{81}$ Хэши SHA-1.
- Да, с вычислительными усилиями Shattered, если противник может выбрать первые 128 байтов A. Это все еще атака Shattered, но она требует значительной работы. Мы можем снизить этот предел до 64 байт, если примем увеличение вычислительных усилий по сравнению с предыдущим пунктом.
- Да, как расширение 3, если противник знает первое $n$ байтов A и может выбрать следующий $128+(-n\bmod 64)$ байт. И мы должны снизить это до $64+(-n\bmod 64)$ байт с повышенными вычислительными затратами. Это может быть дополнительно расширено до того, что противник выберет около 20 байт информации в любом первом $64\,f$ байтов А со знанием этого раздела А, и дальнейшее увеличение работы не более чем в $f$.
- Да, как следствие 4, если A готовится способом, находящимся под контролем противника, т.е. если A является документом PDF, изображением PNG, изображением CD/DVD «ISO», возможно, исполняемым файлом, подготовленным с использованием инструментов, созданных злоумышленником. Информацию о цифровых сертификатах см. этот вопрос.
- Нет, если A проходит тест, предоставленный авторами Shattered, и мы придерживаемся их метода атаки. Но их тест не может защитить от других атак сопоставимой стоимости, и ни один тест не может защитить от атак с незначительно увеличенной стоимостью.
- Нет, если есть по крайней мере 64 бита энтропии в первых 64 байтах A, которые неизвестны злоумышленнику в то время, когда злоумышленник может влиять на A, для любых возможных вычислительных усилий. Это включает в себя случайный A и цифровые сертификаты, выпущенные центрами сертификации, которые принимают простые меры предосторожности, используя рандомизированные серийные номера в начале сертификата.
Я хочу убедиться, что формат файла не ограничивается PDF.
Атака и расширение Shattered не ограничиваются PDF, см. 3/4/5. Его можно перенести (с некоторыми усилиями) с любым форматом файла без какой-либо внутренней проверки избыточности; то есть большинство. Кроме того, префиксы, аналогичные 1 (специализированные для недорогой подделки PDF), могут быть разработаны для многих форматов, включая JPEG, PNG, GIF, MP4, JPEG2000, формат Portable Excutable и многих других, при этом значительная, но выполнимая работа должна быть выполнена только однажды. Префиксы 1 работают даже с некоторыми существующими форматами файлов, например. аудио и видео для плееров, которые пропускают то, что они не распознают (поскольку вопрос не спрашивает, что разные A и B ведут себя по-разному; этого было бы трудно добиться с префиксами 1 для чего-то не PDF, а стандартный плеер не создан для этой цели).
Если вы сомневаетесь: лучше перестраховаться, чем сожалеть, предположите, что да, атака возможна, и используйте непрерывный и значительно более широкий хэш, чем SHA-1.
(принцип) статьи состоит в том, чтобы дополнить два блока сообщений
Не совсем. это дополнено несколько битов в два последовательный блоков сообщений (каждый по 64 байта), содержимое которых выбирается (со значительной, но выполнимой работой) в зависимости от состояния хэша перед обработкой этих двух блоков сообщений. Следовательно, содержимое этих двух блоков сообщений в A не является произвольным, оно должно совпадать с этими мучительно вычисленными 128 байтами. Такое совпадение не произойдет случайно (например, для случайного A), оно требует некоторого контроля над A и знания состояния хэша перед хешированием этих двух блоков. Такое знание можно получить, зная часть сообщения А перед этими двумя блоками А, которые нужно выбрать, чтобы атака сработала.
Атака, которая работает для произвольного A, будет (второй) атакой прообраза. Такая атака не известна для SHA-1.