Цитата |
Я никогда не утверждал, что изменение алгоритама - это ужасно плохо. Речь, еще раз, шла о том, что в системе должны быть все элементы защиты, а не только "неизвестность". Так же я утверждал, что защита неизвестностью в веб-приложениях очень слаба - настолько, что не перевешивает плюсы открытости функции crypt. Ваша функция была лешена _всего_ и основывалась только на "неизвестности". |
Ну а вот это откровенная чушь и наглая ложь. Вот первоначальный вариант моей функции:
function cryptPassword($password, $salt = IRB_SALT, $logic = IRB_LOGIC)
{
$cript = array(1 => 'md5', 'sha1', 'sha256', 'ripemd320', 'gost');
$logic = (string)$logic;
$cnt = strlen($logic);
for($i = 0; $i < $cnt; $i++)
{
$algo = $cript[$logic[$i]];
$password = hash($algo, $password . $salt);
}
return md5($password);
}
гда тут написано, что можно применять
ТОЛЬКО(!!!) статическую соль? Где??? Покажите мне пальцем. Где написано, что в функции нельзя применять динамическую соль??? Ладно, не доходит так, давайте по другому. Покажите мне в мануале, в описании функции crypt() хоть намек на динамическую соль. Детерменированная там есть, ПОКАЖИТЕ МЕНЕ ДИНАМИЧЕСКУЮ.
Вы прицепились к функции и дали такую оценку:
Цитата |
уровень junior-а. Не понимающего вообще ничего про хранение паролей и соль. |
В статье не была описана динамическая соль, статья была не про это вообще. Статья была про функцию, а не про принципы хранения паролей. Да, согласен, нужно было писать подробнее, что я и сделал позже. Но вот это же явный подлог:
Цитата |
Ваша функция была лешена _всего_ и основывалась только на "неизвестности". |
Давайте тогда и мануал оценим уровнем юниора.
Кроме того, под давлением общественности я согласился, что статью лучше подправить, дабы не было недомолвок. Но вы не успокоились.
Цитата |
Или тогда напишите большими буквами на своих сайтах - я не собираюсь особо защищать ваши пароли, ибо кому вы и ваши пароли нужны. |
Но я же уже все исправил! Вернее дополнил согласно вашим рекомендациям. Нет, вам мало, вы все равно уперлись рогом.
Теперь с другой стороны.
В вашей статье тоже дан пример использования функции crypt():
Цитата |
// Создание хеша $hash = crypt('password'); // crypt сама генерирует соль и хеширует, используя дефолтный алгоритм // Если есть необходимость использовать определенный алгоритм, то нужно подготовить соль в формате crypt, а именно // $<алгоритм>$<строка соли>$ или $<алгоритм>$<параметры хеширования>$<строка соли>$, если алгоритм требует дополнительные параметры // Например: $1$xdtfsfre$ - MD5 алгоритм |
И нет ни полслова о том, что нужно указывать цену или количество итераций так, что бы обеспечить достаточно медленное выполнение алгоритма. НЕТУ. Тут вы предлагаете людям додумывать самостоятельно. Значит вам можно, а мне нет. Как же, я же юниор, а вы гуру. Вам все позволено, а мне нет.
Заметьте, моя статья называлась "функция хэширования паролей". Не "принципы хранения". Так что откоряка про то, что ваша сатья не про функцию crypt() не прокатит. Иначе получаются двойные стандарты. О чем я сто раз повторил - вы или трусы оденьте, или крестик снимите.
И моя вторая статья просто ответная реакция на такой вопиющий подлог. О чем я и написал в преамбуле:
Цитата |
Натолкнула меня на мысль написать такую статью вот эта публикация в википедии и жаркий спор на тему моей функции хэширования паролей с одним из авторов этой статьи. |
И вот эта статья была уже про принципы хранения паролей. И в ней я описал подробно, что на мой взгляд лучше использовать ОБА принципа. И динамическую соль и security by obscurity. ОБА!
Не какой то один, тем более неизвестность, а оба. Плюс добавил, что не желательно использовать crypt() с дефолтным значением итераций:
Цитата |
Что мы имеем, применив функцию crypt() в голом виде. |
Цитата |
Ну или если не по вкусу велосипеды, пользуйтесь crypt(), но только с умом. Используя большое количество раундов, не меньше миллиона. |
Кроме того, в ней есть ссылка на вашу статью, и её принципы не отрицаются. А дополняются.
Но вам этого мало. Вы не можете изменить свою оценку даже после корректировок. И тут мы опять наблюдаем двойной стандарт или вообще раздвоение личности. Вы согласились, что дополнить, это нормально:
Цитата |
Если вы вносите изменения в уже существующий алгоритм, в котором есть все защиты с целью добавить туда security by obscurity - это... ну нормально, в общем. |
и оценка статьи
Цитата |
Слуш, ты чо, дурак? |
которую вы не изменили
Цитата |
А "оценка" - это про статью - эту оценку я не изменил. |
Тон статьи да, может быть излишне эмоционален. Остыну, изменю и это. Но не я начал, сами виноваты.
Ладно, теперь уже на самом деле хватит. Детский сад и сбоку бантик. В целом позиция ясна - вы крут, бел и пушист. Соглашусь, что бы больше не спорить. Мне собственно на это плевать. Главное что я теперь знаю - все, что написано в обоих статьях - правильно. А именно этот результат в сотню раз важнее вашего ко мне отношения.
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.