Intereting Posts

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

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

    В настоящее время известные недостатки SHA-1 не влияют на безопасность того, что вы пытаетесь сделать. Невозможность восстановить пароль из своей хешированной версии основывается на «сопротивлении прообразу», который, насколько нам известно, по-прежнему полностью неосуществим с SHA-1. Он также полностью недостижим с SHA-512, SHA-256 или даже MD4 или MD5. Ориентированный на Sci-Fi ум может представить компьютеры, способные находить прообразы для 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 и более новый скрин. В Википедии есть страницы для всех трех функций:

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