Вопрос про безопасность SQL-запросов.

WMix

герр M:)ller
Партнер клуба
я с этого начал, скажи алгоритм. я понимаю что соль может быть функцией. (но благодаря open source и ленивому программисту это чаще всего известно)

hell0w0rd, значит все соли увели вместе с паролями
 

hell0w0rd

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

Фанат

oncle terrible
Команда форума
называй хоть лаврушкой, но по сути это та же соль
 

WMix

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

Фанат

oncle terrible
Команда форума
Спасает сочетание всех ТРЕХ факторов. БЕЗ изъятия какого-либо. И уж тем более единственный фактор не обеспечит защиты
 

ggfdsfds

Новичок

Фанат

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

тем более, что соль должна быть уникальной - что сделает радугу неприменимой в принципе.
 

WMix

герр M:)ller
Партнер клуба
Фанат, я считаю что мд5 ( одна и таже соль (10-30 символов) с паролем хешем от предыдушего вызова) в рекурсии 100 раз чтоб затормозить генератор будет вполне достаточна, можно добавить функциональную фишку типа времени создания но как только этот алгоритм становиться известным (временная метка), это уже не имеет смысла. важно чтоб было биткоинсы майнить дешевле чем пароли разгадывать. а вообще твоя статья очень правильная!
 

флоппик

promotor fidei
Команда форума
Партнер клуба
Фанат, у тебя там написано не совсем верно:
Далее, надо себе представлять, в чём особенности хэширования именно паролей. Основная проблема паролей состоит в том, что они сравнительно короткие. Если при хэшировании довольно длинного текста можно [до определённой степени] быть уверенным, что никто и никогда не подберёт исходный текст по имеющемуся хэшу, то в случае с паролем такой вариант в принципе возможен. А при определённых условиях - и весьма вероятен.
Длина пароля тут никакой роли не играет, кроме частоты их использования. Это же хеш-функция, длина результата фиксированная. И тебе не нужен исходный текст - тебе нужен текст, дающий аналогичный хеш. Да, количество вариантов хешей огромно, но их множество все равно заведомо и намного меньше, чем количество комбинаций символов.
 

флоппик

promotor fidei
Команда форума
Партнер клуба
Надо конечно, написать еще про двухфакторную авторизацию, авторизацию через соцсети (там нет ни хешей, ни паролей, и в случае утери достаточно отозвать саму подписку приложения) и про новый http://php.net/password_hash в пхп, который значительно упрощает хеширование
 

флоппик

promotor fidei
Команда форума
Партнер клуба
Фанат, я считаю что мд5 ( одна и таже соль (10-30 символов) с паролем хешем от предыдушего вызова) в рекурсии 100 раз чтоб затормозить генератор будет вполне достаточна
Ты неприемлемо уменьшаешь количество вероятных исходных данных. твою рекурсию в 100 проходов выкинут, и будут искать коллизию с текстом с ограниченным набором символов, и заведомо известной длиной - то, что получится на 99 проходе. Брутфорсом тебя в таком раскладе можно перебрать за смешное время.
 

Фанат

oncle terrible
Команда форума
Длина пароля тут никакой роли не играет, кроме частоты их использования.
Найти коллизию заведомо сложнее,чем сбрутить исходный пароль.
В том-то и дело, что при парольных длинах хэшируемой строки - микроскопических по сути - как раз длина-то и играет ключевую роль.
 
Последнее редактирование:

флоппик

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

Фанат

oncle terrible
Команда форума
и про новый http://php.net/password_hash в пхп, который значительно упрощает
С одной стороны, это действительно просто обёртка над бкриптом.
С другой - только ради *удобства* упоминать смысла никакого нет. Там весь упор как раз на скорость создания хэша - о чем у меня и говорится.
 

флоппик

promotor fidei
Команда форума
Партнер клуба
С одной стороны, это действительно просто обёртка над бкриптом.
С другой - только ради *удобства* упоминать смысла никакого нет. Там весь упор как раз на скорость создания хэша - о чем у меня и говорится.
Ты видел, как в бкрипте создавать нормальный хеш? Там надо с мануалом наверно сидеть час, и все равно можно сделать неверно. Мне кажется, это важная вещь, которая упрощая - мешает делать неправильно. И поэтому ее нужно пропагандировать. Помнится, была презенташка чья-то, кажется, Альшанецкого, где было показано, что с бкриптом не справляются даже такие гиганты, как линкдин.
 

Фанат

oncle terrible
Команда форума
Ну ок.
Хотя в его же коде - эмуляторе я не увидел каких-то особых сложностей в реализации, кроме обычного для ооп накручивания десятков строк кода там, где нужна одна.
 

WMix

герр M:)ller
Партнер клуба
Ты неприемлемо уменьшаешь количество вероятных исходных данных. твою рекурсию в 100 проходов выкинут, и будут искать коллизию с текстом с ограниченным набором символов, и заведомо известной длиной - то, что получится на 99 проходе. Брутфорсом тебя в таком раскладе можно перебрать за смешное время.
дещевле 100 раз прокрутить чем подбирать 16³² для каждого пользователя
 
Сверху