Безопастность хеша паролей

Добрый день, прочитал статью:
http://www.webasyst.ru/blog/security-improvement-advices-1/
Хочу сделать кастомный алгоритм шифрования и добавить соль.
В предлагаемой функции в статье кажется не правильно указана соль.
По идее солью должно быть "S!aL:T1%(#". и )."_s+A=lT,2?*", а функция без соли должна выглядеть так:

function wa_password_hash($password)
{
return md5(sha1($password));
}

Можно передавать в функцию wa_password_hash к примеру ID пользователя в качестве соли?
Этот ID никогда не меняется и не будет проблем с неработающим паролем.

Можно ли для удобство "соль" вынести в отдельные переменные и уже использовать сами переменные в функции? Это упростит редактирование и чтение кода и хранение соли.Какое количество символов рекомендованно в соли и какие символы в соли не допустимы?

Можно ли использовать функцию crypt с BLOWFISH?

Можно ли использовать sha2, вместо sha1 или вообще sha3?

Можно ли использовать все вышеописанное вместе?

Вообще у разработчиков есть какие-либо обновленные рекомендации по поводу хеширования паролей? Даже мой относительно простенький ноутбук с видеокартой nvidia может переберать тьму паролей в секунду (850 млн. паролей в секунду при расшифровке md5 или sha1).
Есть ли в арсенале разработчиков наработки с более стойким алгоритм шифрования? Сейчас даже на сайте http://php.net черным по белому написано что они не рекомендуют применять md5 и sha1 для защиты паролей, так как они очень просты для перебора современными вычислительными системами.

Хочу защитить своих пользователей, хоть ваш фреймворк безопасный, но с чем черт не шутит.
P.S. Так как я и большенство пользователей фреймворка не программисты, пожалуйста поделитесь рабочими примерами кода.
Спасибо.

2 ответа

  • 2
    Сергей 30 ноября 2014 21:15 #

    Неужели все используют стандартный MD5 и не за что не переживают?

    Обидно, что сами разработчики из webasyst'а ничего не написали по теме.

    • +1
      Алексей | shop-script.org Алексей | shop-script.org 17 сентября 2016 15:26 #

      Вероятно, основная проблема в поддержке совместимости с PHP 5.3
      Для 5.5+ этой проблемы нет.
      https://habrahabr.ru/post/194972/

      Неужели все используют стандартный MD5 и не за что не переживают?

      Пользователи точно не переживают, они вообще не знают о том, что это такое.

  • 2
    info@ravencode.ru 17 сентября 2016 19:03 #

    Капчу включите - замучаются брутфорсить. А по поводу того что можно использовать в переопределенном методе - все зависит от параметров Вашего хостинга.

    • +1
      Алексей | shop-script.org Алексей | shop-script.org 17 сентября 2016 19:16 #

      Так безопастность хеша паролей к брутфорсу прямого отношения не имеет.
      Google reCAPTCHA, да очень помогает.

      На счет зависимости от параметров хостинга - полностью согласен.
      Вот разработчики взяли бы и написали, к примеру - для PHP 5.3, для 5.5-5.6, для 7.
      Это же, как бы, массовый продукт. По идее, конечный пользователь вообще не должен заморачиваться с редактированием конфигурационных файлов, а просто забить из админки.
      Но, если уж ему рекомендуют править конфиги, то хотя бы примеров добавили.
      Я лично не сомневаюсь, что у 90% тех кто правил там прямо так и вставлено

      return md5(sha1("S!aL:T1%(#".$password)."_s+A=lT,2?*");
      • +1
        Евгений Леман Евгений Леман 18 сентября 2016 07:04 #

        Правильно сомневаетесь. Не у 90%, а у 99,99%. Как бы так объяснить, что этого хватает?

        ПС Забавно, но почему кодеры так помешаны на упоротости паролей? Это полнейшая бесполезность. Ведь все мы раньше занимались воровством ценных аккаунтов на различных ресурсах и знаем каким способом всё это делается. И на сложность пароля и вашу соль плевать. Как плевать и на сами эти хэши. Они и даром никому не нужны даже с заведомо известной солью.

      • +1
        info@ravencode.ru info@ravencode.ru 18 сентября 2016 15:57 #

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

Добавить ответ

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