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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: MD5 и соль [3]

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
OrmaJever Модератор
Отправлено: 08 Июля, 2013 - 09:43:26
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




DeepVarvar пишет:
Как правило нужны не все пользаки, а один, так-то солить один раз.

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


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
AlexAnder
Отправлено: 08 Июля, 2013 - 09:59:56
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 915
Дата рег-ции: Авг. 2012  
Откуда: Россия


Помог: 34 раз(а)




OrmaJever пишет:
DeepVarvar пишет:
Как правило нужны не все пользаки, а один, так-то солить один раз.

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

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


-----
Оказывается, недостаточно читать справочники, чтобы правильно писать коды. sadex ©

Форумы стали местом обучения программированию, а не решения трудных вопросов. KingStar ©
 
 Top
Саныч Модератор
Отправлено: 08 Июля, 2013 - 11:07:15
Post Id



Участник


Покинул форум
Сообщений всего: 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.
Несколько мудрено конечно, но что есть, то есть Улыбка
Что скажите?


-----
Все возражают против того, что я гений, хотя никто еще так меня не назвал. - Орсон Уэллс
 
 Top
vanicon
Отправлено: 08 Июля, 2013 - 11:31:59
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 808
Дата рег-ции: Янв. 2010  
Откуда: Самара


Помог: 17 раз(а)




Задам и я вопрос раз уж так.
В бд обычный хеш пароля md5 + соль, соль в приложения впечатана.
Так вот допустим стащили бд юзеров, без соли не получиться же пароль подобрать так?
Если так, то смысл в этих ухищрениях наподобие тем что привел Саныч, если вскроют само приложение, тот уже без соли наворотить можно что угодно, да и узнать алгоритм хеширования, или соли как в моем случае.
Прошу знающих людей ответить.


-----
Так было, так есть и так будет
 
 Top
DelphinPRO
Отправлено: 08 Июля, 2013 - 12:58:20
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




Саныч пишет:
Что скажите?

Если алгоритм хеширования станет известен - мы сведем проблему к предыдущим. (неавторитетное мнение, учитывая мою некомпетентность в криптографии Улыбка)


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
DeepVarvar Супермодератор
Отправлено: 08 Июля, 2013 - 14:37:14
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Если уже проникли в ФС и смотрят исходники - что толку с криптографии?
Нет смысла заниматься криптографией на сайтах с посещаемостью полтора человека в месяц.
Бекапы - наше все.

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

Перейдите на sha и успокойтесь.
 
 Top
Мелкий Супермодератор
Отправлено: 08 Июля, 2013 - 16:05:27
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




DeepVarvar пишет:
Перейдите на sha и успокойтесь.

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

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

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

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

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

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

Да нафиг он никому не нужен. Интересны пользователи и их email'ы - зачастую пароли одни и те же везде. А с доступом в почту - есть доступ много куда. Например, и туда, где деньги лежат.


-----
PostgreSQL DBA
 
 Top
Hapson
Отправлено: 08 Июля, 2013 - 16:53:23
Post Id



Посетитель


Покинул форум
Сообщений всего: 356
Дата рег-ции: Июнь 2013  
Откуда: Ставропольский край


Помог: 10 раз(а)

[+]


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

PS
Я еще читал про crypt, но так ничего и не понял. Вроде пишут, что он лучше md5, но там вроде алгоритм зависит от системы, или как-то так...


-----
ПЫХ тут - ходи туда, прежде чем писать сюда (толку больше будет)
 
 Top
esterio
Отправлено: 08 Июля, 2013 - 16:54:02
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




Мелкий
За ссилку спасибо
 
 Top
vanicon
Отправлено: 08 Июля, 2013 - 17:09:32
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 808
Дата рег-ции: Янв. 2010  
Откуда: Самара


Помог: 17 раз(а)




Hapson
Нет это не константа это что то вроде:
md5(md5($pass).md5(md5('blalbla').md5('23')))
Дело все в том, что если даже скроют бд пользователей, то без этой комбинации соли хеш не подобрать, а эта комбинации хранится в приложение, соответственно надо иметь к нему доступ, а если есть доступ к приложению то тут бесполезно что либо хешировать...
Тогда зачем заморачиваться с уникальной солью для юзеров?


-----
Так было, так есть и так будет
 
 Top
Саныч Модератор
Отправлено: 08 Июля, 2013 - 17:22:31
Post Id



Участник


Покинул форум
Сообщений всего: 1365
Дата рег-ции: Июль 2010  
Откуда: Украина, Запорожье


Помог: 62 раз(а)




DelphinPRO пишет:
Если алгоритм хеширования станет известен - мы сведем проблему к предыдущим.
Это да...
Тема вобще такая... скользкая что ли...
Вскрыли приложение, есть алгоритм хеширования, по тем же словарям можно начинать гонять.
Залезли в базу, наворотили че хочешь, опять же на кой хеши нужны...

Мелкий пишет:
Переходите на password_hash (слой совместимости со старыми версиями). Зря, что ли, делали?
Делали то может и не зря, но появилось только в 5.5.0, а хостеры до него обновятся еще ох как не скоро, они только на 5.4 переползать начали...
А этот костыль для ранних версий... Код его еще не смотрел, но думаю что внутри тежи игры со стандартными md5(), sha1() и т.д., тоже чем мы и страдаем тут. Вобщем вечером посмотрю его код, может мнение поменяется.


-----
Все возражают против того, что я гений, хотя никто еще так меня не назвал. - Орсон Уэллс
 
 Top
esterio
Отправлено: 08 Июля, 2013 - 17:47:17
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




вот ето, если верить phpDoc и описанию из статьи которую привел EuGen, порадовало
Цитата:
/**
* Verify a password against a hash using a timing attack resistant approach
*/
function password_verify($password, $hash)

Если верить доке, то полностю совместим
 
 Top
OrmaJever Модератор
Отправлено: 08 Июля, 2013 - 19:02:46
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




DelphinPRO пишет:
Если алгоритм хеширования станет известен - мы сведем проблему к предыдущим.

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


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Мелкий Супермодератор
Отправлено: 08 Июля, 2013 - 19:26:50
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Саныч пишет:
Делали то может и не зря, но появилось только в 5.5.0

А ссылку для кого привёл? Уж на 5.3.7 (а местами и с 5.3.3 совместимо) - многие апдейтнулись.


-----
PostgreSQL DBA
 
 Top
DlTA
Отправлено: 09 Июля, 2013 - 02:02:10
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010  


Помог: 53 раз(а)




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


PHP:
скопировать код в буфер обмена
  1. function hashPass($pass){
  2.   sleep(rand(1,5));
  3.   // и пусть весь мир подождет ))
  4.   return md5(strrev(md5($pass)));
  5. }
 
 Top
Страниц (4): « 1 2 [3] 4 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB