Наткнулся на статью. Хэширование паролей, совет Не понимаю суть. Если угадают через форму, совет не сыграет роли. Это действительно может помочь, если базу нелегально сольют?
Да, паролей не будет в словарях и прийдётся брутить с нуля. Но если пароли вида 123456 то их всё-равно подберут. А вообще, советую почитать:http://mrthe.name/2009/08/kak-hranit-paroli-polzovatelej/
Если сольют базу вместе с солью, то смысл этой самой соли, только в замедлении скорости брута на большом списке хэшей и всё. Достаточно только знать как эта соль присоединяется к паролю (можно просто методом тыка пробовать, если изначально неизвестно как).
соль нужна для сокрытия пароля. Даже если он в md5, вероятность коллизии или подбора по базе md5 хешей отпадает. Соответственно, получив базу или вытянув куки, удаленный взломщик не сможет восстановить пароль пользователя из подобного хеша. Несомненно, это не защищает от банального брута пасса через форму, однако защищает от восстановления пароля при получении кук или бд. Хотя если соли лежит в той же базе, все старания напрасны. Лично я для своих проектов храню солю в конфигах, не в базе. Пусть она одна и одинаковые пассы можно найти через базу, зато первичную соль не узнать, получив доступ только к базе.
Опять-же использование нестандартного алгоритма присоединения соли заставит взломавшего искать или писать самому модуль для брута... чтонить типа Md5(md5(salt).salt.md5(pass)) да и скорость брута никогда не сравнится со скоростью брута простого MD5. @D_ существуют способы узнать соль если известен алгоритм хеширования. Т.е. если мы зарегены, мы знаем свой пасс если ещё знаем и алгоритм, то просто если изначальный алгоритм md5(salt.pass), то использую md5(pass.salt) и подставив вместо соли наш пасс, мы тупо брутим соль. А вот зная соль и зная что она одинаковая во всех хешах, мы можем брутить пасс со скоростью простого MD5.
несомненно, однако мы забываем, что соль для кук и для базы может быть разной =) Да и потом, чтобы брутить хеш, нужно всё таки получить доступ к базе.
Ну для кук вообще использовать пасс ненужно, так что непонимаю о чём это вы. А по поводу доступа к базе, так тут и идёт обсуждение того как защитить пароли юзеров если до базы всётаки доберутся... Защита на самом деле хороша только тогда, когда даже в случае утери всей инфы(пассы, хеши, алгоритм) востановление паролей занимает время нецелесообразное с важностью этих паролей. Т.е. врядли кто-то станет тратить сутки брута для востановления пароля от домашней странички, а вот брут пасса от кредитки с крупной суммой должен занимать месяц...