Веб-разработчики пишут небезопасный код по умолчанию

1 2345 6
SeVlad
На сайте с 03.11.2008
Offline
1609
#21
ivan-lev:
Пароли "солили" 15 человек..

Я имел ввиду что при упоминании SHA в хабропосте ничего не было сказано про соль.

ivan-lev:
В том числе трое из тех, кто "небезопасной" функцией пользовался.

С чего ты решил, что они "в том числе"? Они совершенно отдельно:

Из 18 участников, которые получили специальные указания использовать криптографию, трое решили использовать Base64 и утверждали, например: «[Я] всё зашифровал, так что пароль не виден» и «Его очень сложно расшифровать».

ничего про применении ими солей тут нет (а как раз наоборот - если не указано, но и значит их не было).

Solmyr:
То что bcrypt является "безопасным" - этого никто не доказал. Сразу вычеркивайте.

В нём же соль по дефолту алгоритму.

Ида. Термин "безопасный" не следует читать как "безопасный на 100%". Скорее так: "на сегодня является одним из самых безопасных относительно других"

Solmyr:
Что касаемо PBKDF2 - если его использовать, так сайт или приложение сразу можно будет задосить фэйковыми логинами вполпинка.

Каким боком ДДОС к криптованию?

Заддоссить можно и вообще без логинов :) А защита от ДДОСа/флуда - совершено др история.

Делаю хорошие сайты хорошим людям. Предпочтение коммерческим направлениям. Связь со мной через http://wp.me/P3YHjQ-3.
_
На сайте с 24.03.2008
Offline
381
#22
SeVlad:

Каким боком ДДОС к криптованию?

Прямым. Если алгоритм дорог, то можно даже заДОСить, так что "мама не горюй".

Вся тема не стоит и выеденного яйца.

В 99.999% проектов не о шифровании паролей надо париться, а о других вещах...

Волосы реально на башке шевелятся, когда в код вполне себе широкоиспользуемых "движков" смотришь.

Апокалипсис
На сайте с 02.11.2008
Offline
391
#23

Ну хранение паролей в открытом виде, это сразу уже профнепригодность.

Хотя, вот у меня был свой офис и 10 прогеров. 20% программистов с опытом работы в 5 лет не знаю что такое SQL инъекций. А все почему? Потому что они не умеют писать SQL запросы, только через конструктор. А если у них отобрать PHPStorm то вообще они ничего не напишут.

Но проблема тут в другом. в 99% нет архитектора у системы, который и должен этим всем заниматься касательно паролей.

Записки нищего (http://zapiskinishego.ru) - мой личный блог Услуги php программиста. Очень нужна любая работа. Не покупают? Поведенческий аудит интернет-магазина за 5000 руб. (/ru/forum/990312)
IL
На сайте с 20.04.2007
Offline
435
#24
SeVlad:

С чего ты решил, что они "в том числе"? Они совершенно отдельно:

Табличку в пруф-посте посмотрел ;) столбик Salt



---------- Добавлено 22.05.2019 в 19:01 ----------

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

Были те, кто для безопасности хранения пароля использовал Base64 (видимо, искренне аргументируя тем, что "ну не понятно же")), использовали симметричное шифрование, будучи уверенными, что “It will be almost impossible to break”..

“I’ve used this technique many times to store passwords and have not faced any security issues.”

("Да ты успаакойся, я сто раз так делал.. " (с))

И шикарное:

“I can add, but I’ll have to implement md5 encryption at client end. Its a couple hrs job. Can you please increase budget a little?

p.s. Справедливости ради следует отметить, что в эксперименте были задействованы не ТОП-овые разработчики..

... :) Облачные серверы от RegRu - промокод 3F85-3D10-806D-7224 ( http://levik.info/regru )
SeVlad
На сайте с 03.11.2008
Offline
1609
#25
_SP_:
Прямым. Если алгоритм дорог, то можно даже заДОСить, так что "мама не горюй".

Расскажешь, каким это "прямым"?

Как влияет тип посуды в твоём в шкафу на устойчивость дома при стуке в двери?

ivan-lev:
Табличку в пруф-посте посмотрел столбик Salt

Спс, я так глубоко не копал.

Однако, глянув - что-то не понял с чего это MD5 c солью записан в фуфломицын? Или я не правильно понял назначение Itertion?

ivan-lev:
Справедливости ради следует отметить, что в эксперименте были задействованы не ТОП-овые разработчики..

Тем не менее в среднем по больнице:

Низкооплачиваемые и высокооплачиваемые группы сработали примерно на одном уровне качества.

Да что там индусы - наши местные, которые позиционируется себя суперспецами осваивающими миллионные бюджеты тоже всерьёз полагают, что ничего страшного в передаче паролей открытым текстом.

IL
На сайте с 20.04.2007
Offline
435
#26
SeVlad:
Однако, глянув - что-то не понял с чего это MD5 c солью записан фуфломицын? Или я не правильно понял назначение Itertion?

Именно эта строчка с MD5 признана безопасной (единичка двумя столбцами ранее) и набрала 4 балла (из 7 возможных, при том, что максимально набранное число баллов - 6)

А Iteration - это параметр, указывающий количество итераций, использованных при хэшировании. В алгоритмах PBKDF2, Bcrypt и Scrypt он задаётся для увеличения сложности вычислений. Для md5 его фактически нет.. Что-то подобное могло бы быть реализовано, к примеру в виде md5(md5(...))

В соответствии с рекомендациями Nist (2017 года) для PBKDF2 минимальное значение 10000.. (и соль - минимум 32 бита), но должно быть "настолько большим, насколько позволяет сервер верификации".

К вопросу о DOS атаке при использовании функции хэширования с большой вычислительной сложностью - одновременная аутентификация большого количества пользователей может занять значительную часть вычислительных мощностей сервера. В уме держим по HTTP-соединению на пользователя, подключение к БД, активную сессию.. и всё это висит и ждёт, пока "нас посчитают", отъедая ресурсы у "обычных" пользователей (доступность).

Вообще, есть мнение, что в 2019 уже и bcrypt с PBKDF2 не стоит использовать.. хэшируйте "Аргоном" (Argon2 - победитель Password Hashing Competition)...

_
На сайте с 24.03.2008
Offline
381
#27
SeVlad:
Расскажешь, каким это "прямым"?

Много писать, для простоты можете начать изучать типы зависимостей с линейных.

В википедии довольно четко всё описано.

https://ru.wikipedia.org/wiki/%D0%9B%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%B0%D1%8F_%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8F

A5
На сайте с 02.06.2009
Offline
215
#28
_SP_:
Прямым. Если алгоритм дорог, то можно даже заДОСить, так что "мама не горюй".
Волосы реально на башке шевелятся, когда в код вполне себе широкоиспользуемых "движков" смотришь.

Зачем досить? Многие "широкоиспользуемые движки" из коробки и под естественной нагрузкой чувствуют себя, мягко говоря, не очень.

Aisamiery
На сайте с 12.04.2015
Offline
293
#29
Апокалипсис:
20% программистов с опытом работы в 5 лет не знаю что такое SQL инъекций. А все почему? Потому что они не умеют писать SQL запросы, только через конструктор.

Так и не понял из контекста это хорошо или плохо? Ведь здорово, когда программисты не пишут код уязвимый для SQL инъекций. Кстати эта атака рассчитана не на сам SQL, а на язык программирования который формирует SQL строку, что никак не связано - знает человек SQL или нет.

Разработка проектов на Symfony, Laravel, 1C-Bitrix, UMI.CMS, OctoberCMS
SeVlad
На сайте с 03.11.2008
Offline
1609
#30
ivan-lev:
А Iteration - это параметр, указывающий количество итераций, использованных при хэшировании.

Да, я таки его не правильно понял.

ivan-lev:
К вопросу о DOS атаке при использовании функции хэширования с большой вычислительной сложностью - одновременная аутентификация большого количества пользователей может занять значительную часть вычислительных мощностей сервера. В уме держим по HTTP-соединению на пользователя, подключение к БД, активную сессию.. и всё это висит и ждёт, пока "нас посчитают", отъедая ресурсы у "обычных" пользователей (доступность)

Нууу.... тут связывать зависимости применяемого метода криптования с атакой совсем не корректно. С таким же успехом можно говорить об успешности ДДОСа при использовании проектом базы данных.

_SP_:
Много писать,

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

1 2345 6

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий