Вопрос

Мне было интересно, могу ли я привести причины или ссылки на ресурсы, объясняющие, почему SHA512 является алгоритмом хеширования, превосходящим MD5.

Это было полезно?

Решение

Это зависит от вашего варианта использования.Вы не можете широко претендовать на "превосходство".(Я имею в виду, да, вы можете, в некоторых случаях, но если быть строгим в этом, то на самом деле вы не можете).

Но есть области, где MD5 был нарушен:

  1. Для начала:MD5 является старым и распространенным.Против этого есть тонны радужных таблиц, и их легко найти.Так что, если вы хэшируете пароли (без соли - позор вам!) - используя md5, - вы могли бы с таким же успехом не хэшировать их, их так легко найти.Даже если на самом деле вы хешируете с простыми солями.
  2. Во-вторых, MD5 больше не защищен как криптографическая хеш-функция (на самом деле, он даже больше не считается криптографической хеш-функцией, как указывает Разветвленная).Вы можете генерировать разные сообщения, хэширующие одно и то же значение.Итак, если у вас есть SSL-сертификат с хэшем MD5, я могу сгенерировать дубликат сертификата, в котором указано то, что я хочу, который выдает тот же самый хэш.Обычно это то, что люди имеют в виду, когда говорят, что MD5 "сломан" - подобные вещи.
  3. В-третьих, подобно сообщениям, вы также можете генерировать различные Файлы этот хэш имеет то же значение таким образом, использование MD5 в качестве контрольной суммы файла "нарушено".

Теперь SHA-512 - это Семейство SHA-2 алгоритм хэширования.SHA-1 в наши дни вроде как считается "э", я проигнорирую это.Однако SHA-2 имеет относительно мало атак против него.Основным из них, о котором говорит википедия, является атака прообразом в уменьшенном раунде это означает, что если вы используете SHA-512 ужасно неправильным способом, я могу его сломать.Очевидно, что вы вряд ли будете использовать его таким образом, но атаки становятся только лучше, и это хороший трамплин для дальнейших исследований по взлому SHA-512 таким же образом, как взламывается MD5.

Однако из всех доступных хэш-функций семейство SHA-2 в настоящее время является самым сильным и наилучшим выбором с точки зрения общности, анализа и безопасности.(Но не обязательно скорость.Если вы работаете со встроенными системами, вам необходимо выполнить совершенно другой анализ.)

Другие советы

MD5 был криптографически взломан уже довольно давно.По сути, это означает, что некоторые свойства, обычно гарантируемые алгоритмами хэширования, больше не сохраняются.Например, можно обнаружить коллизии хэшей за гораздо меньшее время, чем потенциально необходимо для выходной длины.

SHA-512 (одна из семейства хэш-функций SHA-2) на данный момент достаточно безопасна, но, возможно, не намного дольше в обозримом будущем.Вот почему NIST начал конкурс на SHA-3.

Как правило, вы хотите, чтобы алгоритмы хэширования были односторонний функции.Они сопоставляют некоторые входные данные с некоторыми выходными данными.Обычно выходные данные имеют фиксированную длину, тем самым обеспечивая "дайджест" исходных входных данных.Общими свойствами являются, например, то, что небольшие изменения во входных данных приводят к большим изменениям в выходных данных (что помогает обнаружить вмешательство) и что функция нелегко обратима.Для последнего свойства длина выходных данных значительно помогает, поскольку она обеспечивает теоретическую верхнюю границу сложности коллизионной атаки.Однако недостатки в дизайне или реализации часто приводят к снижению сложности атак.Как только они будут известны, пришло время оценить, используется ли все еще хэш-функция.Если сложность атаки снизится достаточно сильно, практические атаки легко попадут в зону действия людей без специализированного вычислительного оборудования.

Примечание:Я говорил здесь только об одном виде атаки.Реальность гораздо более тонкая, но и гораздо более трудная для восприятия.Поскольку хэш-функции очень часто используются для проверки целостности файла / сообщения, проблема столкновения, вероятно, самая простая для понимания и следования.

Есть пара моментов, которые здесь не рассматриваются, и я чувствую, что это из-за непонимания того, что такое хэш, как он работает и сколько времени требуется для успешной атаки на них, используя rainbow или любой другой метод, известный в настоящее время человеку...

Математически говоря, MD5 не "сломан", если вы подсолите хэш и попытаетесь дросселировать (даже на 1 секунду), ваша безопасность будет так же "сломана", как если бы злоумышленник медленно бил деревянной ложкой по вашей стальной стене толщиной 1 фут:

Это займет тысячи лет, и к тому времени все участники будут мертвы;есть более важные вещи, о которых стоит беспокоиться.

Если вы заблокируете их учетную запись с 20-й попытки...проблема решена.20 просмотров на вашей стене = 0,0000000001% вероятности, что они прошли.В буквальном смысле больше статистических шансов, что вы на самом деле Иисус.

You're thinking about it wrong.

Также важно отметить, что абсолютно любая хэш-функция будет уязвима к коллизиям в силу того, что такое хэш:"(небольшой) уникальный идентификатор чего-то другого".

Когда вы увеличиваете битовое пространство, вы снижаете частоту коллизий, но вы также увеличиваете размер идентификатора и время, необходимое для его вычисления.

Давайте проведем крошечный мысленный эксперимент...

SHA-2, если бы он существовал, имел бы всего 4 возможных уникальных идентификатора для чего-то другого...00, 01, 10 & 11.Очевидно, что это приведет к столкновениям.Видите ли вы здесь проблему?Хэш - это просто сгенерированный идентификатор того, что вы пытаетесь идентифицировать.

MD5 на самом деле очень, очень хорош в случайном выборе числа на основе входных данных.ША на самом деле не намного лучше в этом;У SHA просто намного больше места для идентификаторов.

Используемый метод составляет примерно 0,1% от причины, по которой столкновения менее вероятны.Настоящая причина заключается в большем битовом пространстве.

Это буквально единственная причина, по которой SHA-256 и SHA-512 менее уязвимы к столкновениям;потому что они используют большее пространство для уникального идентификатора.

Фактические методы, которые SHA-256 и SHA-512 используют для генерации хэша, на самом деле лучше, но ненамного;те же самые атаки rainbow сработали бы на них, если бы в их идентификаторах было меньше битов, а файлы и даже пароли могут иметь идентичные идентификаторы, используя SHA-256 и SHA-512, просто это намного менее вероятно, потому что использует больше битов.

РЕАЛЬНАЯ ПРОБЛЕМА заключается в том, как вы реализуете свою безопасность

Если вы позволите автоматическим атакам поражать вашу конечную точку аутентификации 1000 раз в секунду, вы будете взломаны.Если вы ограничите скорость до 1 попытки в 3 секунды и заблокируете учетную запись на 24 часа после 10-й попытки, это не так.

Если вы храните пароли без соли (соль - это просто дополнительный секрет генератора, затрудняющий идентификацию плохих паролей, таких как "31337" или "пароль") и у вас много пользователей, вас могут взломать.Если вы их посолите, даже если вы используете MD5, это не так.

Учитывая, что MD5 использует 128 бит (32 байта в шестнадцатеричном формате, 16 байт в двоичном), а SHA 512 занимает всего в 4 раза больше места, но практически исключает коэффициент коллизии, предоставляя вам на 2 ^ 384 больше возможных идентификаторов...Каждый раз используйте SHA-512.

Но если вы беспокоитесь о том, что на самом деле произойдет, если вы используете MD5, и вы не понимаете реальных различий, вас все равно, вероятно, взломают, есть смысл?

читая это

Однако было показано, что MD5 не устойчив к столкновениям

более подробная информация о столкновении здесь

MD5 имеет вероятность столкновения (http://www.mscs.dal.ca /~селинджер/md5коллизия/) и в Интернете есть множество радужных таблиц MD5 для обратного поиска паролей, доступных для скачивания.

Для отображения в обратном направлении требуется гораздо больший словарь, и вероятность столкновения с ним ниже.

Это просто, MD5 сломан ;) (см. Википедия)

Брюс Шнайер написал об атаке, что "мы уже знали, что MD5 - это неработающая хэш-функция" и что "никто больше не должен использовать MD5".

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top