Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: MD5 и соль [3]
Форумы портала PHP.SU » » Вопросы новичков » MD5 и соль

Страниц (4): « 1 2 [3] 4 »
 

31. OrmaJever - 08 Июля, 2013 - 09:43:26 - перейти к сообщению
DeepVarvar пишет:
Как правило нужны не все пользаки, а один, так-то солить один раз.

как правило это не так, искать уязвимость на сайте ради одного никто не будет. По собственому опыту скажу что если получаешь доступ к бд то стараешся выжать максимум информации о пользователях.
32. AlexAnder - 08 Июля, 2013 - 09:59:56 - перейти к сообщению
OrmaJever пишет:
DeepVarvar пишет:
Как правило нужны не все пользаки, а один, так-то солить один раз.

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

к.о. подсказывает что нужен один пользователь - админ
33. Саныч - 08 Июля, 2013 - 11:07:15 - перейти к сообщению
Раз уж зашла тема про хеширование пароля, спрошу вашего мнения по алгоритму, который использую я.

В таблице юзеров есть 3 поля которые нам нужны:
pass CHAR(128)
salt CHAR(100)
reg_time TIMESTAMP

в pass хранится sha512 хеш.
salt - понятно из названия 100-символьная строка соли из самых разных символов, для каждого пользователя своя.
Пароль засаливается и хешируется несколько раз (3 - 10). При этом используются различные алгоритмы хеширования (md4, md5, sha1, sha512). Последняя итерация выполняется обязательно в sha512. При каждой итерации засолки и хеширования используется только часть строки соли.
Количество циклов засолки, какой алгоритм использовать для каждой итерации, часть строки засолки и с какой стороны ее конкатенировать вычисляются из значения reg_time.
Несколько мудрено конечно, но что есть, то есть Улыбка
Что скажите?
34. vanicon - 08 Июля, 2013 - 11:31:59 - перейти к сообщению
Задам и я вопрос раз уж так.
В бд обычный хеш пароля md5 + соль, соль в приложения впечатана.
Так вот допустим стащили бд юзеров, без соли не получиться же пароль подобрать так?
Если так, то смысл в этих ухищрениях наподобие тем что привел Саныч, если вскроют само приложение, тот уже без соли наворотить можно что угодно, да и узнать алгоритм хеширования, или соли как в моем случае.
Прошу знающих людей ответить.
35. DelphinPRO - 08 Июля, 2013 - 12:58:20 - перейти к сообщению
Саныч пишет:
Что скажите?

Если алгоритм хеширования станет известен - мы сведем проблему к предыдущим. (неавторитетное мнение, учитывая мою некомпетентность в криптографии Улыбка)
36. DeepVarvar - 08 Июля, 2013 - 14:37:14 - перейти к сообщению
Если уже проникли в ФС и смотрят исходники - что толку с криптографии?
Нет смысла заниматься криптографией на сайтах с посещаемостью полтора человека в месяц.
Бекапы - наше все.

Если в жизни наткнетесь на серьезный проект, онлайн ворочающий баблом клиентов - то там будет совсем иной подход.
Ах, да - на пыхе такое не пишут..

Перейдите на sha и успокойтесь.
37. Мелкий - 08 Июля, 2013 - 16:05:27 - перейти к сообщению
DeepVarvar пишет:
Перейдите на sha и успокойтесь.

Переходите на password_hash (слой совместимости со старыми версиями). Зря, что ли, делали?

DeepVarvar пишет:
ворочающий баблом клиентов - то там будет совсем иной подход.

Не будет там другого подхода. Потому что код пишут всё те же самые люди.
На старте проекта хороший хэш ничего не стоит. А вот потом его переделывать будет дорого.

DeepVarvar пишет:
Ах, да - на пыхе такое не пишут..

Ещё как пишут.

AlexAnder пишет:
к.о. подсказывает что нужен один пользователь - админ

Да нафиг он никому не нужен. Интересны пользователи и их email'ы - зачастую пароли одни и те же везде. А с доступом в почту - есть доступ много куда. Например, и туда, где деньги лежат.
38. Hapson - 08 Июля, 2013 - 16:53:23 - перейти к сообщению
vanicon
Вот вы говорите, что у вас соль лежит в приложении. Я так понимаю она одна и скорее всего это какая-то константа. В коде ведь не будешь хранить соль для каждого пользователя.
Мне кажется надежнее хранить соль в базе - уникальную для каждого.

PS
Я еще читал про crypt, но так ничего и не понял. Вроде пишут, что он лучше md5, но там вроде алгоритм зависит от системы, или как-то так...
39. esterio - 08 Июля, 2013 - 16:54:02 - перейти к сообщению
Мелкий
За ссилку спасибо
40. vanicon - 08 Июля, 2013 - 17:09:32 - перейти к сообщению
Hapson
Нет это не константа это что то вроде:
md5(md5($pass).md5(md5('blalbla').md5('23')))
Дело все в том, что если даже скроют бд пользователей, то без этой комбинации соли хеш не подобрать, а эта комбинации хранится в приложение, соответственно надо иметь к нему доступ, а если есть доступ к приложению то тут бесполезно что либо хешировать...
Тогда зачем заморачиваться с уникальной солью для юзеров?
41. Саныч - 08 Июля, 2013 - 17:22:31 - перейти к сообщению
DelphinPRO пишет:
Если алгоритм хеширования станет известен - мы сведем проблему к предыдущим.
Это да...
Тема вобще такая... скользкая что ли...
Вскрыли приложение, есть алгоритм хеширования, по тем же словарям можно начинать гонять.
Залезли в базу, наворотили че хочешь, опять же на кой хеши нужны...

Мелкий пишет:
Переходите на password_hash (слой совместимости со старыми версиями). Зря, что ли, делали?
Делали то может и не зря, но появилось только в 5.5.0, а хостеры до него обновятся еще ох как не скоро, они только на 5.4 переползать начали...
А этот костыль для ранних версий... Код его еще не смотрел, но думаю что внутри тежи игры со стандартными md5(), sha1() и т.д., тоже чем мы и страдаем тут. Вобщем вечером посмотрю его код, может мнение поменяется.
42. esterio - 08 Июля, 2013 - 17:47:17 - перейти к сообщению
вот ето, если верить phpDoc и описанию из статьи которую привел EuGen, порадовало
Цитата:
/**
* Verify a password against a hash using a timing attack resistant approach
*/
function password_verify($password, $hash)

Если верить доке, то полностю совместим
43. OrmaJever - 08 Июля, 2013 - 19:02:46 - перейти к сообщению
DelphinPRO пишет:
Если алгоритм хеширования станет известен - мы сведем проблему к предыдущим.

Давным давно читал на хабре простую истину, "вопреки всей логике чем дольше выполняется функция хеширования пароля тем лучше" (с)
Поэтому есть смысл написать свой алгоритм и пусть даже он будет известен, но главное что бы он долго выполнялся.
44. Мелкий - 08 Июля, 2013 - 19:26:50 - перейти к сообщению
Саныч пишет:
Делали то может и не зря, но появилось только в 5.5.0

А ссылку для кого привёл? Уж на 5.3.7 (а местами и с 5.3.3 совместимо) - многие апдейтнулись.
45. DlTA - 09 Июля, 2013 - 02:02:10 - перейти к сообщению
OrmaJever пишет:
Давным давно читал на хабре простую истину, "вопреки всей логике чем дольше выполняется функция хеширования пароля тем лучше" (с)
Поэтому есть смысл написать свой алгоритм и пусть даже он будет известен, но главное что бы он долго выполнялся.


PHP:
скопировать код в буфер обмена
  1. function hashPass($pass){
  2.   sleep(rand(1,5));
  3.   // и пусть весь мир подождет ))
  4.   return md5(strrev(md5($pass)));
  5. }

 

Powered by ExBB FM 1.0 RC1