С учетом контрольной суммы MD5 и случайного файла. Возможно ли добавить суффикс для соответствия контрольной сумме?

289
some user

Я часто слышу, что MD5 небезопасен. Но я не уверен, как им можно манипулировать. Я не хочу быть тем парнем, который просто повторяет «MD5 небезопасен», не зная некоторых деталей.

Скажем, у меня есть 128-битная контрольная сумма MD5. И у меня есть вредоносный файл, который находится под моим контролем. Может ли текущий сервер за 5 тыс. Долларов сгенерировать «фиксатор» в течение недели, который можно добавить к файлу и получить такую ​​же контрольную сумму MD5?

0

2 ответа на вопрос

3
dave_thompson_085

Это зависит от того, что именно вы подразумеваете под «контролем».

Если вы, злоумышленник, выберете два файла, которые должны иметь одинаковый хэш, это то, что криптографы называют столкновением (атакой), и для MD5 это теперь очень просто. Если вы можете выбрать оба файла свободно, это займет несколько секунд; если вам нужно удовлетворить довольно слабые, но общие ограничения, такие как «это выглядит как PDF» или «это похоже на смолу», может быть, от нескольких часов до недель .

С другой стороны, если у вас есть один заранее заданный файл (обычно «хороший»), и вы должны найти другой («плохой») файл с таким же хешем, который не является конфликтом с криптографами, это второй прообраз . Самая известная прообразная атака на MD5 лишь немного лучше, чем грубая сила в 2 123.4 .

Ваши 5 тысяч долларов могут, вероятно, купить полдюжины хороших графических процессоров, что дает вам где-то около 2 37 испытаний в секунду (около 100 миллиардов). Это примерно 2 62 в год, поэтому на это уйдет в среднем около 2 60 лет (около 1 000 000 000 000 000 000 или квинтиллион). В более удобных сроках, это примерно в сто миллионов раз больше возраста вселенной . Ваш компьютер, вероятно, не будет длиться так долго.

Спасибо. Последний случай предоставления плохого файла с таким же хешем - это то, что я бы посчитал успешной атакой. Я думаю, что нет ничего хорошего в том, чтобы выбрать 2 файла с одинаковым хешем. Какова практическая цель иметь возможность выбрать 2 бесполезных файла для того же хеша? В наши дни все и их собаки говорят, что MD5 слаб, должен быть какой-то более сильный аргумент? some user 5 лет назад 0
@someuser См., например, [«MD5 сегодня считается вредным»] (http://www.win.tue.nl/hashclash/rogue-ca/), в котором исследователи описывают, как они использовали слабость MD5 для создания поддельного сертификата. с действительной подписью. Некоторые приложения не подвержены атакам коллизий, но чтобы убедиться, что использование хэшей не уязвимо, потребуется очень хорошее понимание того, как вы используете хэши, и некоторые очень осторожные размышления о возможных атаках. А затем повторяйте анализ каждый раз, когда вы меняете * что-нибудь *. Намного проще, безопаснее и гибче просто использовать лучший хеш. Gordon Davisson 5 лет назад 0
1
Seth

Лучшее, что вы можете сделать, - это посмотреть на реальные документы, касающиеся обнаружения коллизий MD5. Есть также различные инструменты, чтобы сделать это. Хороший ответ на этот вопрос в StackOverflow: создавайте свои собственные коллизии MD5, если вы не заинтересованы в самостоятельном чтении статьи.

Большинство искателей столкновений, вероятно, не заинтересованы в поиске модификаций для файлов, а скорее прямо в столкновениях. В конце концов, если MD5 проверит и пользователи запустят файл, ваш вредоносный файл будет запущен.

Похожие вопросы