Какой метод хеширования вы используете (MD5, SHA1, другие?) - PullRequest
11 голосов
/ 24 декабря 2008

Эта страница Википедии содержит обширный список методов хеширования

Как вы можете видеть, MD5 и Sha1 были сломаны (в криптографии "сломан" означает, что есть атака менее сложная, чем атака грубой силой. Другими словами, если вам нужно 1 миллион лет, чтобы найти столкновение вместо Один миллиард лет, используя грубую силу, алгоритм считается нарушенным, даже если его, вероятно, все еще безопасно использовать.

Что вы используете в качестве алгоритма хеширования?

SHA1 не работает, но для вычисления коллизии все еще требуется миллиард лет.

Другие хэши по-прежнему не сломаны, но мы должны помнить, что исследователи концентрируют свои усилия на основном алгоритме (то есть MD5 и SHA1), поэтому несломанные хэши могут быть небезопасными.

Ответы [ 7 ]

11 голосов
/ 24 декабря 2008

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

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

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

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

Тем не менее, если вы разрабатываете новую систему, рекомендации по ее проектированию, чтобы вы могли заменить любой ваших криптоалгоритмов в любое время, остаются ценными. В идеале через конфигурацию / плагин, а не перекомпиляцию.

4 голосов
/ 24 декабря 2008

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

И следуйте другим соответствующим правилам безопасности для вашей платформы:)

2 голосов
/ 24 декабря 2008

Это зависит от того, что я использую хеш для ... Безопасность? Обнаружение изменения файла? Найти дубликаты файлов?

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

Если используется случай, не связанный с безопасностью (то есть поиск дубликатов файлов), MD5 работает нормально и работает быстрее.

1 голос
/ 24 декабря 2008

Есть и другие, такие как SHA-256 или RIPEMD-160 или даже один из кандидатов SHA-3 (см. Список здесь на ваш выбор. Имейте в виду, что они не были так тщательно протестированы и проанализированы, как MD4 / 5 и SHA-1. Это, конечно, также имеет стоимость с точки зрения производительности.

Одним из ответов на ваш вопрос будет использование двух из них, надеюсь, достаточно разных, чтобы поломка одного не сломала другого. ИМХО, шансы против того, что оба будут разбиты достаточно, чтобы подделать две контрольные суммы, довольно бездонные.

0 голосов
/ 20 ноября 2018

Это также обсуждается в https://security.stackexchange.com/questions/211/how-to-securely-hash-passwords и https://security.stackexchange.com/questions/56397/which-hashing-algorithm-is-ideal-for-use-on-the-web

TL; DR:

  • если вы хэшируете пароли , вам нужно что-то медленное, например, bcrypt.
  • в противном случае SHA-256, кажется, подходит.
0 голосов
/ 24 декабря 2008

Насколько я понимаю, ломаная часть MD5 заключается в том, что кто-то с исходным текстом теперь может легко создать второй текст с тем же дайджестом MD5.

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

0 голосов
/ 24 декабря 2008

Если вас беспокоит безопасность, лучше избегать «сломанных» хеш-функций. То, что вы сказали, может быть верным для некоторых хеш-функций, которые только что были нарушены исследователями, но атака в реальном мире может вскоре появиться благодаря использованию новых идей, полученных в результате исследовательской работы.

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

Вы не хотите пересчитывать весь свой хэш / подпись для множества вещей, которые вы уже вычислили в случае, если это произойдет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...