За последние 24 часа нас посетили 17479 программистов и 1650 роботов. Сейчас ищут 944 программиста ...

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

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

  1. runcore

    runcore Старожил

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

    где вы увидели пургу? обоснуйте
     
  2. MiksIr

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

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

    Начните с изучения основ - что такое соль, почему ей не нужно быть секретной, почему она _обязана_ быть уникальной у каждого пароля. Тогда поймете про первую цитату. А про вторую... для начала найдите такую коллизию хотя бы md5 алгоритма для строчки с солью, потом уже умничайте.
     
  3. runcore

    runcore Старожил

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

    отсылать в интернеты мы все умеем.
    вот по вам и видно - что только основы и прочитали )
     
  4. MiksIr

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

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

    Знаете, вот лет 25 назад было очень сложно искать информацию. Теперь же, во времена интернета, если человек не в состоянии сам разобраться в теме - то ему явно нужно бросать программирование и идти на другие важные для общества работы. Особо когда речь идет об основах, который каждый веб-программист должен знать. Так что да, отсылать в интернеты. Не знаю, почему у вас это вызывает такую проблему.
     
  5. Chushkin

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

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

    Господа-товарищи, не путайте горячее с мягким, пожалуйста.
    ТС спросил "Как лучше и безопаснее хешировать пароль юзера?" (выделено мною). А то, что вы обсуждаете к хешу пароля не имеет отношения - это другая задача.
    п.с.
    Я уже лет 10 пытаюсь от противников MD5() получить решение задачки - "восстановить пароль по известному хешу MD5", предоставленному мною, а воз и ныне там. :(
     
  6. runcore

    runcore Старожил

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

    я про то, что если отсылаете - то посылайте конкретно. а так похоже на вялую отмазку.

    советуете md5() ? даже ходить далеко не буду, на официальном сайте php советуют обратное)

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

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

    Добавлено спустя 8 минут 7 секунд:
    Re: Хеширование паролей - как лучше и безопаснее это сделать?
    это очень глупо.
    ибо есть огромная разница между вашим специально подготовленным хешем на основе огромного и сложного пароля - и хешем рядового посетителя сайта, у которого в качестве пароля используется имя любимого киногероя.

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

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

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

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

    Не из-за коллизий, как предположили вы. Просто из-за того, что он сейчас слишком быстро считается. Коллизии и "не раз скомпрометированно" тут вообще не причем.

    Хотите, что бы вам разжевали и в рот положили, раз сами не умеете искать информацию? Ок, мне не сложно, вам же хуже.

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

    Если у нас одна соль на все пароли, то берем новую комбинацию, клеим соль, считаем хеш. Считать хеш - очень затратно. Потом идем по всем 10000 паролей и тупо сравниваем. Сравнение строк знаете насколько затратная операция? По сравнению с хешом - нинасколько.

    Т.е. благадоря вашему совету подбор 10000 хешей стал по скорости равен одному прогону словаря брутфорса.

    Что происходит, когда соли разные... уже поняли? Надежда мала. Когда соли разные, злоумышленник на каждый из 10000 паролей считает хеш текущей комбинации словаря + соль конкретного хеша.

    Добавлено спустя 3 минуты 5 секунд:
    Re: Хеширование паролей - как лучше и безопаснее это сделать?
    Принцип неуловимого джо? Ну дайте мне md5 от 7-значного пароля со стандартным набором символов, посмотрим
     
  8. runcore

    runcore Старожил

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

    неважно! коллизии существуют? существуют! я и упомянул их среди прочего. а не как САМЫЙ ГЛАВНЫЙ минус.
    тут все взаимосвязанно. чем больше скорость перебора, тем быстрее найдем коллизию. понимаете, это говорю не я - это говорят специалисты. спорьте с ними.

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

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

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

    чета вы с ума сходите

    а че сам? =)
    я свой пароль из мд5 получил за то ли шесть, то ли двадцать минут.

    кароче. [vs] предложил разумную идею, мало того, что соль всегда разная, она еще и вычисляется внтурях кода, что делает ее уникальной и нигде не хранящейся. удобственно!

    Добавлено спустя 7 минут 44 секунды:
    Re: Хеширование паролей - как лучше и безопаснее это сделать?
    это как без соли. я кстати редко пользуюсь солью =)
     
  10. runcore

    runcore Старожил

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

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

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

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

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

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

    Еще раз повторяю, ломают не новичка, ломают пароли его пользователей. И пользователям все равно, кто писал сайт, которым они пользуются - новичок или профи. Они вправе получить защиту своих паролей хотя бы в том минимуме, что используют все вменяемые разработчики.

    И вообще-то новичку нужно знать 1) какие функции есть готовые - это password_hash или чуть посложнее - crypt, 2) общая информация, зачем это нужно, зачем нужна соль, зачем она нужна разная и т.п.

    Не говоря о том, что вы в принципе даже не пытались понять, как все работает на самом деле. Ваш sha1 не сильно отличается по скорости подбора от md5 - всего лишь раза в 3. А знаете почему "всего-лишь"? Еще в дцать лет назад то, что в crypt называлось md5 ($1$) - на самом деле было тысяча итераций md5. Вдумайтесь, уже много лет назад делали тысячу md5, и сейчас это признано ненадежно. А вы советуете "простую соль и sha". Стрелять нужно за такие советы. Новичков он решил учить, что им "хватит", lol...
     
  12. igordata

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

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

    чуть? для каждой соли свою таблицу надо строить. =) это не чуть. это * на количество паролей.
     
  13. Chushkin

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

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

    Если Вы так считаете - решите задачку, восстановите пароль из моего хеша. Пароль 6 символов и даже без юникода - [0-9a-zA-Z].
    md5: 353ca8a39598b11609dc5c546056513d

    Повторюсь, 10 лет я слышу только слова, что "MD5 дерьмо, дыра в безопасности". И 10 лет я не видел ни одного убедительного доказательства этого. Например, решение простейшей задачки по декодированию хеша (см выше).
     
  14. MiksIr

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

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

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

    Полагаться только на секретный ключ - это Security through obscurity - антипаттерн мира защиты информации.
     
  15. runcore

    runcore Старожил

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

    md5 советовал ты. а это самая слабое решение из всех озвученных в теме))
    так что убейся об стену самостоятельно. википедии начитался школьник и умничать тут вздумал. видно сразу что опыта вообще нет

    Добавлено спустя 2 минуты 10 секунд:
    Re: Хеширование паролей - как лучше и безопаснее это сделать?
    md5 генерится со скоростью от 30 000 000 хешей в секунду. это на обычной средней тачке, те кто этим занимаются у них железо помощнее.
    так что сгенерить для жалких 10 000 - это фигня.
     
  16. MiksIr

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

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

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

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

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

    Да пожалуйста. Здесь пароль вообще простое имя [a-zA-Z].
    md5: ae78fdf8bc3c525c7bb6e45a33cafe84
     
  18. runcore

    runcore Старожил

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

    ну тебе то виднее, теоретик-строитель суперзащищенных систем - на основе md5()
    много умных слов - но все они оторваны от реальности.
    абсолютной защиты не существует, безопасность это совокупность компромисов. тебе это должны были рассказать еще на первой лекции по ИБ. но ты видимо проспал её, как и многие последующие.

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

    не выдавай желаемое за действительное. никого здесь ты никуда так и не смог "ткнуть".
    одни пафосные теоретические высеры.
    вот и бесишься, что тебя всерьез никто не воспринимает)
     
  19. MiksIr

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

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

    runcore, эх, даже троля из тебя не выходит... ну что за неудачник...
    Ну ты хотя бы ткни на мой пост в этой теме, где я md5 советую, а? Это же не сложно тебе, правда? ;) недотроль.

    Chushkin, запущу седня если моя gpu-ха словится софтом. Давно уже таким не баловался.
     
  20. igordata

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

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

    точно шесть? точно md5?

    Добавлено спустя 5 минут 18 секунд:
    Re: Хеширование паролей - как лучше и безопаснее это сделать?
    у тебя какое-то неправильное понимание вопроса.
    Во-первых, сейчас считаю на видюхе со скоростью 822M, а не 30M. Это да.
    Но чтобы просчитать 6-16 a-Z с цифрами и символами уйдет очень много времени. Очень. И если это надо делать заново для каждого пароля - это ад.
     
  21. runcore

    runcore Старожил

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

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

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

    romach Старожил

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

    хм... а как с учетом открытых исходников сгенерировать эту вашу уникальную соль так что бы взломщик не догадался? И обратный вопрос - если генерировать что-то уникальное и отдельно это хранить, то почему взломщик угнав хэши не угнал соль? Короче, я потерял нить повествования )
     
  23. Chushkin

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

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

    Точно шесть. Точно MD5.
     
  24. runcore

    runcore Старожил

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

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

    если соль хранится вместе с хешами - то конечно угонят все сразу.
     
  25. Chushkin

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

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

    Во-во, по этому вопросу спорщики всегда противоречат не только логике, но и себе. ;)