Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010 Откуда: Чернигов
Помог: 299 раз(а)
DeepVarvar пишет:
Как правило нужны не все пользаки, а один, так-то солить один раз.
как правило это не так, искать уязвимость на сайте ради одного никто не будет. По собственому опыту скажу что если получаешь доступ к бд то стараешся выжать максимум информации о пользователях.
----- Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
AlexAnder
Отправлено: 08 Июля, 2013 - 09:59:56
Частый посетитель
Покинул форум
Сообщений всего: 915
Дата рег-ции: Авг. 2012 Откуда: Россия
Помог: 34 раз(а)
OrmaJever пишет:
DeepVarvar пишет:
Как правило нужны не все пользаки, а один, так-то солить один раз.
как правило это не так, искать уязвимость на сайте ради одного никто не будет. По собственому опыту скажу что если получаешь доступ к бд то стараешся выжать максимум информации о пользователях.
к.о. подсказывает что нужен один пользователь - админ
Покинул форум
Сообщений всего: 1365
Дата рег-ции: Июль 2010 Откуда: Украина, Запорожье
Помог: 62 раз(а)
Раз уж зашла тема про хеширование пароля, спрошу вашего мнения по алгоритму, который использую я.
В таблице юзеров есть 3 поля которые нам нужны:
pass CHAR(128)
salt CHAR(100)
reg_time TIMESTAMP
в pass хранится sha512 хеш.
salt - понятно из названия 100-символьная строка соли из самых разных символов, для каждого пользователя своя.
Пароль засаливается и хешируется несколько раз (3 - 10). При этом используются различные алгоритмы хеширования (md4, md5, sha1, sha512). Последняя итерация выполняется обязательно в sha512. При каждой итерации засолки и хеширования используется только часть строки соли.
Количество циклов засолки, какой алгоритм использовать для каждой итерации, часть строки засолки и с какой стороны ее конкатенировать вычисляются из значения reg_time.
Несколько мудрено конечно, но что есть, то есть
Что скажите?
----- Все возражают против того, что я гений, хотя никто еще так меня не назвал. - Орсон Уэллс
vanicon
Отправлено: 08 Июля, 2013 - 11:31:59
Частый посетитель
Покинул форум
Сообщений всего: 808
Дата рег-ции: Янв. 2010 Откуда: Самара
Помог: 17 раз(а)
Задам и я вопрос раз уж так.
В бд обычный хеш пароля md5 + соль, соль в приложения впечатана.
Так вот допустим стащили бд юзеров, без соли не получиться же пароль подобрать так?
Если так, то смысл в этих ухищрениях наподобие тем что привел Саныч, если вскроют само приложение, тот уже без соли наворотить можно что угодно, да и узнать алгоритм хеширования, или соли как в моем случае.
Прошу знающих людей ответить.
----- Так было, так есть и так будет
DelphinPRO
Отправлено: 08 Июля, 2013 - 12:58:20
Активный участник
Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012
Помог: 353 раз(а)
Саныч пишет:
Что скажите?
Если алгоритм хеширования станет известен - мы сведем проблему к предыдущим. (неавторитетное мнение, учитывая мою некомпетентность в криптографии )
----- Чем больше узнаю, тем больше я не знаю.
DeepVarvar
Отправлено: 08 Июля, 2013 - 14:37:14
Активный участник
Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008 Откуда: Альфа Центавра
Помог: 353 раз(а)
Если уже проникли в ФС и смотрят исходники - что толку с криптографии?
Нет смысла заниматься криптографией на сайтах с посещаемостью полтора человека в месяц.
Бекапы - наше все.
Если в жизни наткнетесь на серьезный проект, онлайн ворочающий баблом клиентов - то там будет совсем иной подход.
Ах, да - на пыхе такое не пишут..
ворочающий баблом клиентов - то там будет совсем иной подход.
Не будет там другого подхода. Потому что код пишут всё те же самые люди.
На старте проекта хороший хэш ничего не стоит. А вот потом его переделывать будет дорого.
DeepVarvar пишет:
Ах, да - на пыхе такое не пишут..
Ещё как пишут.
AlexAnder пишет:
к.о. подсказывает что нужен один пользователь - админ
Да нафиг он никому не нужен. Интересны пользователи и их email'ы - зачастую пароли одни и те же везде. А с доступом в почту - есть доступ много куда. Например, и туда, где деньги лежат.
----- PostgreSQL DBA
Hapson
Отправлено: 08 Июля, 2013 - 16:53:23
Посетитель
Покинул форум
Сообщений всего: 356
Дата рег-ции: Июнь 2013 Откуда: Ставропольский край
Помог: 10 раз(а)
[+]
vanicon
Вот вы говорите, что у вас соль лежит в приложении. Я так понимаю она одна и скорее всего это какая-то константа. В коде ведь не будешь хранить соль для каждого пользователя.
Мне кажется надежнее хранить соль в базе - уникальную для каждого.
PS
Я еще читал про crypt, но так ничего и не понял. Вроде пишут, что он лучше md5, но там вроде алгоритм зависит от системы, или как-то так...
----- ПЫХ тут - ходи туда, прежде чем писать сюда (толку больше будет)
esterio
Отправлено: 08 Июля, 2013 - 16:54:02
Активный участник
Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012 Откуда: Украина, Львов
Помог: 127 раз(а)
Мелкий
За ссилку спасибо
vanicon
Отправлено: 08 Июля, 2013 - 17:09:32
Частый посетитель
Покинул форум
Сообщений всего: 808
Дата рег-ции: Янв. 2010 Откуда: Самара
Помог: 17 раз(а)
Hapson
Нет это не константа это что то вроде:
md5(md5($pass).md5(md5('blalbla').md5('23')))
Дело все в том, что если даже скроют бд пользователей, то без этой комбинации соли хеш не подобрать, а эта комбинации хранится в приложение, соответственно надо иметь к нему доступ, а если есть доступ к приложению то тут бесполезно что либо хешировать...
Тогда зачем заморачиваться с уникальной солью для юзеров?
----- Так было, так есть и так будет
Саныч
Отправлено: 08 Июля, 2013 - 17:22:31
Участник
Покинул форум
Сообщений всего: 1365
Дата рег-ции: Июль 2010 Откуда: Украина, Запорожье
Помог: 62 раз(а)
DelphinPRO пишет:
Если алгоритм хеширования станет известен - мы сведем проблему к предыдущим.
Это да...
Тема вобще такая... скользкая что ли...
Вскрыли приложение, есть алгоритм хеширования, по тем же словарям можно начинать гонять.
Залезли в базу, наворотили че хочешь, опять же на кой хеши нужны...
Мелкий пишет:
Переходите на password_hash (слой совместимости со старыми версиями). Зря, что ли, делали?
Делали то может и не зря, но появилось только в 5.5.0, а хостеры до него обновятся еще ох как не скоро, они только на 5.4 переползать начали...
А этот костыль для ранних версий... Код его еще не смотрел, но думаю что внутри тежи игры со стандартными md5(), sha1() и т.д., тоже чем мы и страдаем тут. Вобщем вечером посмотрю его код, может мнение поменяется.
----- Все возражают против того, что я гений, хотя никто еще так меня не назвал. - Орсон Уэллс
esterio
Отправлено: 08 Июля, 2013 - 17:47:17
Активный участник
Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012 Откуда: Украина, Львов
Помог: 127 раз(а)
вот ето, если верить phpDoc и описанию из статьи которую привел EuGen, порадовало
Цитата:
/**
* Verify a password against a hash using a timing attack resistant approach
*/
function password_verify($password, $hash)
Если верить доке, то полностю совместим
OrmaJever
Отправлено: 08 Июля, 2013 - 19:02:46
Активный участник
Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010 Откуда: Чернигов
Помог: 299 раз(а)
DelphinPRO пишет:
Если алгоритм хеширования станет известен - мы сведем проблему к предыдущим.
Давным давно читал на хабре простую истину, "вопреки всей логике чем дольше выполняется функция хеширования пароля тем лучше" (с)
Поэтому есть смысл написать свой алгоритм и пусть даже он будет известен, но главное что бы он долго выполнялся.
----- Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
Мелкий
Отправлено: 08 Июля, 2013 - 19:26:50
Активный участник
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
Саныч пишет:
Делали то может и не зря, но появилось только в 5.5.0
А ссылку для кого привёл? Уж на 5.3.7 (а местами и с 5.3.3 совместимо) - многие апдейтнулись.
----- PostgreSQL DBA
DlTA
Отправлено: 09 Июля, 2013 - 02:02:10
Постоянный участник
Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010
Помог: 53 раз(а)
OrmaJever пишет:
Давным давно читал на хабре простую истину, "вопреки всей логике чем дольше выполняется функция хеширования пароля тем лучше" (с)
Поэтому есть смысл написать свой алгоритм и пусть даже он будет известен, но главное что бы он долго выполнялся.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.