За последние 24 часа нас посетили 20646 программистов и 1008 роботов. Сейчас ищут 485 программистов ...

Хеширование паролей - как лучше и безопаснее это сделать?

Тема в разделе "Подворотня", создана пользователем eldor, 7 дек 2013.

  1. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    Re: Хеширование паролей - как лучше и безопаснее это сделать

    ты очем?
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    Re: Хеширование паролей - как лучше и безопаснее это сделать

    ломают как раз хомячков. =)
     
  3. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    Re: Хеширование паролей - как лучше и безопаснее это сделать

    школьники ломают хомячков.
    серьезные люди ломают точечно. тех у кого больше доступа, или у кого бабла больше.
    не нужно думать что хакеры дебилы - которые будут годами ломать хеши от забытого всеми форума "любителей лысых кисок"
     
  4. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    Re: Хеширование паролей - как лучше и безопаснее это сделать

    Соль где-нибудь в конфиге - это понятно, я не могу понять как сделать ту самую уникальную соль для каждой записи так, что бы механизм её генерации не был известен взломщику (при условии что он слил БД, либо имеет доступ к исходникам)? Ну или в крайнем случае, если алгоритм весь из себя такой уникальный, как потом сравнить хэши? ))
     
  5. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    Re: Хеширование паролей - как лучше и безопаснее это сделать

    ломают хомячков. =)

    кароче я не могу найти к
    в пространстве [0-9a-zA-Z]{6,6}

    Добавлено спустя 1 минуту 37 секунд:
    Re: Хеширование паролей - как лучше и безопаснее это сделать?
    на семи знаках тоже нету у меня ничо
     
  6. Chushkin

    Chushkin Активный пользователь

    С нами с:
    17 дек 2010
    Сообщения:
    1.062
    Симпатии:
    91
    Адрес:
    Мещёра, Центр, Болото N3
    Re: Хеширование паролей - как лучше и безопаснее это сделать

    Что и требовалось доказать - восстановить пароль из хеша MD5 оооочень сложно.

    Добавлено спустя 1 минуту 36 секунд:
    Re: Хеширование паролей - как лучше и безопаснее это сделать?
    Читайте romach, в основном именно о том.
     
  7. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    Re: Хеширование паролей - как лучше и безопаснее это сделать

    какой пароль-то? просто похоже что на указанном пространстве нет такого хеша вообще.

    Добавлено спустя 1 минуту 16 секунд:
    Re: Хеширование паролей - как лучше и безопаснее это сделать?
    давай ты выберешь слово на пространстве [0-9a-zA-Z]{6,6}, даш его мд5, я скажу сколько его искал, а ты скажешь слово.
     
  8. MiksIr

    MiksIr Активный пользователь

    С нами с:
    29 ноя 2006
    Сообщения:
    2.340
    Симпатии:
    44
    Re: Хеширование паролей - как лучше и безопаснее это сделать

    Скажите ответ.
     
  9. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    Re: Хеширование паролей - как лучше и безопаснее это сделать

    не, пусть свой пароль бережет. Давайте заново.
    Чушкин, слово загадай, скажи хеш.
     
  10. MiksIr

    MiksIr Активный пользователь

    С нами с:
    29 ноя 2006
    Сообщения:
    2.340
    Симпатии:
    44
    Re: Хеширование паролей - как лучше и безопаснее это сделать

    Соль не секретна и хранится вместе с хешом пароля. У нее другие задачи, ей не нужно быть секретной.
     
  11. Chushkin

    Chushkin Активный пользователь

    С нами с:
    17 дек 2010
    Сообщения:
    1.062
    Симпатии:
    91
    Адрес:
    Мещёра, Центр, Болото N3
    Re: Хеширование паролей - как лучше и безопаснее это сделать

    Хм, похоже что Вы не читали мою первую реплику в этом топике. Прочтите, это полезно.

    Добавлено спустя 3 минуты 22 секунды:
    Re: Хеширование паролей - как лучше и безопаснее это сделать?
    Мне кажется, Вы ошибаетесь. ?)
    В хешировании паролей именно секретность соли (точнее, алгоритма создания string) не позволяет его восстановить. Если алгоритм известен, то никакие соли не спасут от дешифрации.
     
  12. MiksIr

    MiksIr Активный пользователь

    С нами с:
    29 ноя 2006
    Сообщения:
    2.340
    Симпатии:
    44
    Re: Хеширование паролей - как лучше и безопаснее это сделать

    Вам кажется. Алгоритмы crypt, которые используется во всем мире много лет, которые используются во _всех_ юникс-системах - вполне себе открыты и не содержат ни одного секретного слова.
     
  13. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    Re: Хеширование паролей - как лучше и безопаснее это сделать

    блин вот ты гандон. =)

    Добавлено спустя 2 минуты 32 секунды:
    Re: Хеширование паролей - как лучше и безопаснее это сделать?
    ок. я готов на эксперимент с солью.
    Просто ты не понимаешь простой вещи, но вот тебе подходящее объяснение.

    Возми соль 2-4 символа, и пароль 2-4 символа. Для скорости тупо. И скажи мне хеш. Я подберу пару соль+пароль. Останется просто спросить тебя несколько раз.
     
  14. Chushkin

    Chushkin Активный пользователь

    С нами с:
    17 дек 2010
    Сообщения:
    1.062
    Симпатии:
    91
    Адрес:
    Мещёра, Центр, Болото N3
    Re: Хеширование паролей - как лучше и безопаснее это сделать

    Ещё раз, - прочтите мою первую реплику, а затем ещё раз подумайте над задачкой ТС.
    Расжую. Хеш пароля должен генериться как MD5(string). А уж как будет формироваться string - это вопрос степени параноидальности и фантазии.
    В задачке выше, это НЕ MD5(password). ;) Это именно MD5(string), как и положено:
    Код (Text):
    1. select md5(concat('10abb52dac1c4b4c351677c86209ba3d','Michael','588ecc80a0e9ef5cc4f34fb386bdf034'))
    Это даст md5: ae78fdf8bc3c525c7bb6e45a33cafe84
    Восстановить из него пароль Michael сложно без знания алгоритма.
     
  15. MiksIr

    MiksIr Активный пользователь

    С нами с:
    29 ноя 2006
    Сообщения:
    2.340
    Симпатии:
    44
    Re: Хеширование паролей - как лучше и безопаснее это сделать

    Вот только ваш алгоритм в исходном коде. Если код утекает - все ваши пароли из базы раскусываются за пол часа. Пользователи вас нижайше благодарят.
     
  16. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    Re: Хеширование паролей - как лучше и безопаснее это сделать

    Какие задачи у заранее известной соли?
     
  17. MiksIr

    MiksIr Активный пользователь

    С нами с:
    29 ноя 2006
    Сообщения:
    2.340
    Симпатии:
    44
    Re: Хеширование паролей - как лучше и безопаснее это сделать

    Не позволить быстро подобрать пароли ко всей базе хешей в целом. Каждый хеш придется подбирать по отдельности. Т.е. без соли _вся_ база подбирается за время соизмеримое с подбором одного единственного хеша.
     
  18. Chushkin

    Chushkin Активный пользователь

    С нами с:
    17 дек 2010
    Сообщения:
    1.062
    Симпатии:
    91
    Адрес:
    Мещёра, Центр, Болото N3
    Re: Хеширование паролей - как лучше и безопаснее это сделать

    Сам презерватив :)) - читать надо, что пишут. ;)

    Выше я выложил вариант для задачки (естественно, в рабочих проектах я использую другой алгоритм). И это далеко не самый сложный. И естественно, любой код можно раскодировать - вопрос времени и денег. За реальное время, скажем за год, вряд ли можно восстановить пароли тысяч/миллионов юзеров, не зная алгоритма. Или это будет слишком дорого. В этом и состоит "защита" паролей.

    Естественно. А Вы знаете другие варианты?
     
  19. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    Re: Хеширование паролей - как лучше и безопаснее это сделать

    Понял )

    з.ы. на форуме явно не хватает плюсиков в репу )
     
  20. MiksIr

    MiksIr Активный пользователь

    С нами с:
    29 ноя 2006
    Сообщения:
    2.340
    Симпатии:
    44
    Re: Хеширование паролей - как лучше и безопаснее это сделать

    Весь мир знает, и идет этим путем много лет. И называется этот путь - повышение вычислительных затрат. Грубо говоря, если у вас операция хеширования выполняется секунду - пользователь это особо не заметит. А вот подобрать цифробуквенный 6-знак... уже нереально.
     
  21. Chushkin

    Chushkin Активный пользователь

    С нами с:
    17 дек 2010
    Сообщения:
    1.062
    Симпатии:
    91
    Адрес:
    Мещёра, Центр, Болото N3
    Re: Хеширование паролей - как лучше и безопаснее это сделать

    Кстати, вот Вам совсем простая задачка: алгоритм Вам уже известен (выше), только соль другая и имя другое. Если так просто дешифруется хеш, восстановите имя из md5: a63649c3324476ccf0f5899547417b11
    п.с. Это я опять к тому, что не имея доступа к конкретному алгоритму (т.е. сам алгоритм + его параметры), восстановить пароль очень сложно. Поэтому утечка только хешей ничего хакеру не даёт, нужен конкретный алгоритм.
     
  22. MiksIr

    MiksIr Активный пользователь

    С нами с:
    29 ноя 2006
    Сообщения:
    2.340
    Симпатии:
    44
    Re: Хеширование паролей - как лучше и безопаснее это сделать

    Да да да, код который утечет вместе с базой. Или у вас есть что-то, что вам 100% гарантирует защищенность кода от кражи?
     
  23. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    Re: Хеширование паролей - как лучше и безопаснее это сделать

    я для простоты предлагаю тебе 2-4 на соль и 2-4 на пароль. для простоты.
    ладно. можно и без эксперимента обойтись. суть ясна. получишь строку из хеша мы можем перебором небольшим выяснить какой там подразумевался пароль... мне кажется это ясно как день.

    Добавлено спустя 1 минуту 10 секунд:
    Re: Хеширование паролей - как лучше и безопаснее это сделать?
    не ну я ж не буду искать 512 символов на своей видюхе. у меня и другие дела есть. я серьёзно. если интересно, то 2-4 пожалуйста на соль и на пасс.
     
  24. Chushkin

    Chushkin Активный пользователь

    С нами с:
    17 дек 2010
    Сообщения:
    1.062
    Симпатии:
    91
    Адрес:
    Мещёра, Центр, Болото N3
    Re: Хеширование паролей - как лучше и безопаснее это сделать

    А я о чём выше говорил? О том же - расшифровать можно любой код. Только если для дешифрации MD5, вам надо 100 лет, положим, а для другого хеша миллион лет, то разницы для практического использования никакой. Поэтому и утверждается, что MD5(string) вполне достаточно.
    п.с.
    Хотел бы спросить, а вы, господа хорошие, не путаете две задачи?
    Есть задача создания контрольного кода для документов/текстов, подтверждающих их целостность. Да, тут MD5 слабоват, это известно.
    Есть задача создания кода однозначно идентифицирующего строку, где алгоритм известен только создателю этого кода.
     
  25. MiksIr

    MiksIr Активный пользователь

    С нами с:
    29 ноя 2006
    Сообщения:
    2.340
    Симпатии:
    44
    Re: Хеширование паролей - как лучше и безопаснее это сделать

    Дешифрация md5 на бытовых дешевых видеокартах идет со скоростью 600-800М хешей в секунду. Думаю, далее вы сами сможете рассчитать скорость подбора обычного 6-8 значного пароля. Конечно, зная все секретные подмешанные строки. Но строить защиту паролей исходя только из спрятанного в коде... это как поставить нормальную металлическую дверь на парадный вход и оставить гнилую деревянную с черного входа. Именно этим вы тут сейчас и занимаетесь.