Могу ли я безопасно распространять хешированный пароль?

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

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

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


person Phyxx    schedule 30.07.2012    source источник
comment
stackoverflow.com/questions/4687518/ похоже, что он в значительной степени отвечает на вопрос. Казалось бы, пока вы используете пароль, который вряд ли можно найти в радужной таблице, вы будете в полной безопасности.   -  person Phyxx    schedule 30.07.2012
comment
До тех пор, пока вы правильно солите свои пароли, оставьте их лежать на открытом воздухе столько, сколько захотите. Но ни один метод хеширования во вселенной не защитит ваш пароль, если это просто прямой sha2('letmein'). Обычные / простые пароли мгновенно попадут в любую базовую программу проверки паролей.   -  person Marc B    schedule 30.07.2012
comment
Принадлежит Security.StackExchange.Com   -  person Billy ONeal    schedule 31.07.2012


Ответы (2)


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

Но все же лучше этого не делать. Никогда не знаешь, какие криптографические атаки могут быть разработаны в будущем.

person Puppy    schedule 30.07.2012

Маловероятно, что кто-то отменит HASH, SHA1, SALT и т. Д. Есть несколько способов отменить один, но если вы думаете, что подвергаетесь такому риску, я бы использовал SHA1 и SALT для максимальной безопасности. Наличие длинного пароля затрудняет его изменение, но если они не являются настоящими опытными кодировщиками, вам не очень нравится становиться его жертвой.

Читайте об алгоритмах в Википедии ...

SHA1: http://en.wikipedia.org/wiki/SHA-1

СОЛЬ: http://en.wikipedia.org/wiki/Salt_(cryptography)

Просто используйте уникальный пароль, и все будет в порядке ;-)

person Brendon McBain    schedule 30.07.2012