#4 Криптография. Атаки на криптографические алгоритмы хеширования.
Здравствуйте, дорогие друзья.
Теперь, когда Вы так много знаете о хешах, давайте продолжим и посмотрим, какие есть возможные атаки на хеш-алгоритмы. Есть три типа атак на хеш-алгоритмы.
Атака с коллизией на криптографический хеш пытается найти два входа, дающих одинаковое хеш-значение, следовательно, коллизия имени хеш-функции заключается в том, что для каждого входа существует уникальный хеш, поэтому, мы можем иметь один и тот же хеш для большего количества разных входов. Хеш-функция может иметь бесконечное количество входов и предопределенную длину вывода. Например, sha256 всегда производит хеш длиной 256 бит, что приводит к возможности двух разных входов, которые производят один и тот же выходной хеш.
Если два разных входа производят один и тот же выходной хеш — это называется коллизией, которая затем может быть использована любым приложением, которое сравнивает два хеша вместе, например, проверки целостности файлов хешей паролей и т. д.
Вероятность столкновения очень низка, особенно для новых и безопасных хеш-функций.
Если Вы пытаетесь выполнить коллизионную атаку на sha256 или sha512 со скоростью, которая в тысячу раз быстрее, чем у самого быстрого компьютера в мире, Вам понадобится очень большое количество времени, и атака потеряет свою актуальность.
Однако старые и устаревшие хеш-алгоритмы, такие как md5 или sha1 не считаются больше безопасными.
Чтобы найти столкновения, я покажу Вам пример с md5 и sha1:
Мы замечаем, что даже несмотря на то, что вход отличается, выходной хеш такой же. Это коллизия md5. Если бы я использовал другой алгоритм, я то получил другие хеши.
Давайте вычислим их хеши с помощью sha1:
Как видим, хеши другие. Коллизия работает только с md5, но не с sha1.
Другая атака на алгоритм хеширования называется первой атакой с предварительным смешиванием, и это означает найти сообщение, которое имеет конкретное заданное значение хеша. Если простая коллизия означает найти два сообщения с одинаковым хешем, то первая смешанная атака означает найти сообщение с заданным хешем, и ее намного сложнее выполнить.
Более того, деструктивно представьте, что у кого-то есть хеш пароля, и он находит совершенно новый пароль, не тот, который имеет тот же хеш, что и хороший. Последняя атака называется второй атакой на прообраз. Это означает, что для данного сообщения Вы должны найти другое сообщение с таким же хешем. Это также очень разрушительно. Просто представьте, что у вас есть очень важный документ, который вы хотите кому-то отправить, и хакер берет второй документ с тем же хешем. Это похоже на shattered атаку, которую мы только что обсуждали. Это просто столкновение, а не заранее смешанная атака. В общем, атака коллизии выполняется легче, чем основная атака, поскольку она не ограничена никаким установленным значением. Любые два значения могут использоваться для столкновения.
На этом все. Всем хорошего дня!
#1 Криптография. Введение в хеши.