Hash Functions и хранение паролей, интересны мнения

Nelius

кипарис во дворе
Hash Functions и хранение паролей, интересны мнения

Хотел бы узнать мнения участников клуба по поводу способов хранения паролей в зашифрованном виде.
Многие наверняка считают что пароли можно хранить и открыто, но данную ситуацию я не рассматриваю...
Итак, ранее я хранил пароли используя sha1 + salt.
А именно, при регистрации пользователя, генерилась "соль", уникальная для данного пользователя, и пароль преобразовывался по определенному алгоритму с использованием этой соли, потом в БД сохранялся sha1-хэш полученного после преобразований пароля. Вроде более менее надежно, но как всегда есть недостатки, например то, что при логине появляется лишний запрос к БД для вытаскивания соли пользователя...
Недавно наткнулся на функции hash как я понял раньше оно было в PECL а начиная с пхп 5.1.2 вроде как "в комплекте". Так вот там довольно большой выбор алгоритмов хэширования...
Возможно, использование более "интересного" алгоритма хеширования и одной "соли" для всех паролей не сильно скажется на безопасности? Как вы считаете?
Я конечно отдаю себе отчет в том что скажется и как скажется, но вопрос скорее в необходимости, то есть использование "strong" hashing + не уникальная соль ~= "weak" hasing + уникальная соль ...
Думаю суть идеи передать смог, жду ваших мнений, заранее спасибо!
 

Фанат

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

Nelius

кипарис во дворе
Ф.а.н.а.т
Согласен, хранение паролей наверняка далеко не самое слабое место моей системы.
Я не делаю из этого проблему и спокойно могу использовать то что есть и работает у меня сейчас, мне просто интересно, хочу расширить кругозор так сказать.
Остальным пробелам в своем образовании я уделяю гораздо больше времени чем этому вопросу, это так, скорее для себя, для души :))
 

kruglov

Новичок
А что б [m]crypt[/m] не использовать? И salt сама генерится и рядом записывается, и обратная совместимость есть (пароли, закодированные старымы способами, при апгрейде продолжат работать).

berkut
Вообще, соль используется, чтоб нельзя было составить базу "строка <-> хэш" и подбирать по хэшу строки.
 

Gas

может по одной?
Просто непонятно зачем её хранить в бд, а не оставить одно захардкоженное значение.
Генерировать её для каждой записи? Но смысл этого от меня ускользает.
 

kruglov

Новичок
Gas
Ну, теоретически, чтоб у разных юзеров с одинаковыми паролями хэши разные были бы. Бесплатная прибавка к безопасности.
 

Gas

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

berkut

Новичок
вот я тоже, туплю и не врубаюсь, как это может помочь.. но я с децл под градусом, наверно туплю
 

WP

^_^
Мне хватает md5 для хранения хеша на сервере. А перехват всё равно ничего не даст. А с солью можно подобрать по маске, по сути ничего не дает.
 

dimagolov

Новичок
Beavis, это все равно, что угадывание паролей. если в пароле будет password, то не важно как его шифровать - его просто подберут.
 

Alexandre

PHPПенсионер
Beavis соленые пароли или правильные пароли - не подберут
а в этих ссылках БД на наиболее употребительные слова и цифросочертания (qwerty, 12345, пробел и тд...) ....
Проверил хеши своих паролей... в этих БД их нет


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

Gas

может по одной?
Alexandre
вроде всё правильно, но c другой стороны, на сервер почти всегда пароль идёт плейном, и получается что на сервере делай хоть одну соль или всё время разные - по итогу слать то будут всё равно для подбора именно `qwerty, 12345`.

Помню были не раз уже были качественные топики на эту тему.
 

Alexandre

PHPПенсионер
Gas для особо замороченных на этом вопросе - есть реализация md5 на JS
 

Gas

может по одной?
Alexandre
я знаю :)
наоборот, сам считаю что не стоит безпочвенно разводить параною.
 

kruglov

Новичок
Alexandre
в сочетании знаков должны быть не менее 2х цифр
Ага, и потом пользователь вместо того, чтоб пароль запомнить, вынужден, тихонько ругаясь на умную систему, записывать его в записную книжку.

Пусть придумает себе пароль из 20 букв, навроде "vsem-privet-vot-eto-ya", посчитайте на досуге, кто из этих паролей безопаснее (этот или ваш 8-символьный)
 

WP

^_^
Повторяю, для хранения на сервере достаточо обычного md5. От клиента передаю соленый хеш с хитрой солью + SSL.
Beavis
А ты поищи в той базе например "4f84a23a5248c0c995378b6337c50673" - md5('dfsuy').

-~{}~ 11.12.07 10:32:

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

dark-demon

d(^-^)b
> я, например, заставляю пользователей "выдумывать" пароль по сл. правилу

а может не надо заставлять, а? меня, например, очень раздражает такая вот "опека"..
 
Сверху