Насколько небезопасно является соленой SHA1 по сравнению с соленым SHA512

StackOverflow https://stackoverflow.com/questions/3740443

Вопрос

Sha1 полностью небезопасен и должен быть заменен.

Этот вопрос 8+ лет, а времена изменились:https://arstechnica.com/information-technology/2017/02/at-deaths-door-for-years-widely-used-sha1-function-is-now-dead/

Для паролей: https://en.wikipedia.org/wiki/pbkdf2.

Для данных: SHA3


SHA512 является более сложным, чем SHA1, но сколько безопасности я теряю, путем хеширования соленого пароля с SHA1 по сравнению с перемешиванием его с 512? С точки зрения времени потребуется для того, кто имеет БД, чтобы взломать один пароль. Я использую структуру, которая не дает мне легкого доступа к SHA512, мне придется переопределить вещи, чтобы сделать его работать, поэтому я думаю просто использовать Sha1, хотя в прошлом я всегда использовал SHA512.

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

Решение

Известные слабые стороны на SHA-1 не влияют на безопасность того, что вы пытаетесь сделать. Невозможность восстановить пароль из своей хешированной версии, опирается на «сопротивление предыдущему устойчивости», что, насколько мы знаем, все еще полностью неосуществимо с SHA-1. Он также полностью неисправен с SHA-512, SHA-256 или даже MD4 или MD5. Ориентированный на наушнику может предусматривать компьютеры, достигнув мощности, чтобы найти премия на MD4 или MD5 около 2050 года; Это займет гораздо дольше для SHA-1.

Теперь так бывает, что пока нет известного ярлыка для вычисления проживания на SHA-1, либо мало защищенного безопасности. В математических словах, если Функция сжатия Используется в SHA-1 неотличимо от «случайного оракула», то она безопасна от проживания. Но известные слабые стороны на SHA-1, которая (теоретически) приводит к столкновениям, также показывает, что его функция сжатия не является случайным оралом. Поэтому безопасность SHA-1 против преступных действий больше не является «хорошей математической причиной, по которой она не нарушает» убеждение. Это больше «Мех, не нашел, как сломать его»

В более мирных словах, если вы используете SHA-1, то вам, вероятно, придется оправдать себя. Даже если вы ничего не делаете не так, ваш выбор SHA-1 будет допрошен. Принимая во внимание, что никто не будет вопросом, используя SHA-256 или SHA-512, даже если это подразумевает накладные расходы на разработку. Кратко указано, используя SHA-1 - это плохое общественные отношения.

Обратите внимание, что соление полностью ортогональна на этот вопрос. Соление предназначено для предотвращения Распределение затрат между атаками на различные экземпляры пароля. Предварительные таблицы (в том числе так называемые «радужные таблицы») являются своего рода обмен (здание таблицы дороги, но может использоваться для атаки 2, 10, 10000 паролей при незначительных дополнительных затратах на наличие атакованных паролей). Солнение поражений обмена. Солс хорош. Победы на обмен важен, потому что возможен атакующий один пароль: не из-за хеш-функции, но поскольку пароль - это то, что соответствует человеческому мозгу, и, следовательно, поддается грубой силе («атаку« словаря »). Со всем, что связаны с паролями, вы не получите проблемы из-за слабостей в хэш-функциях, но поскольку вы используете пароли в первую очередь.

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

Существует доказательство уязвимостей безопасности в алгоритме SHA1, что может привести к атаке. Я бы порекомендовал использовать вариант SHA2 (SHA 256 или SHA 512).

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

(Источник и дополнительная информация: http://en.wikipedia.org/wiki/sha-1)

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

Если вы решили пойти на другой алгоритм хеширования, вы должны посмотреть BCrypt. Отказ Это адаптируемый алгоритм хеширования затрат, предназначенный для того, чтобы быть «медленным, по мере необходимости». Это обеспечило бы большее увеличение требуемого времени растрескивания, чем SHA512. SHA512 Разработан как криптографический хэш общего назначения со скоростью как один из целей дизайна.

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

Сказав это, конечно, лучше использовать лучший доступный алгоритм.

Sha1 и Sh512 Дайджесты сообщений, они были никогда значит быть функциями перемешивания паролей (или ключей). (Хотя дайджест сообщений может использоваться строительный блок для KDF, например, в PBKDF2 с HMAC-SHA1.)

Функция перемешивания паролей должна защищаться от атак в словаре и радужных столов.

В настоящее время единственным стандартом (как в санкционировании NIST) на хешировании паролей или функция деривации ключей является PBKDF2. Лучшим вариантом, если использование стандарта не требуется, являются BCRYPT и новее Scrrpt. У Википедии есть страницы для всех трех функций:

Страница в https://crackstation.net/hashing-security.htm. содержит обширное обсуждение безопасности пароля.

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