PHP: Хэширование паролей

Discussion in 'PHP' started by dimash, 29 Oct 2009.

  1. dimash

    dimash Elder - Старейшина

    Joined:
    14 Apr 2008
    Messages:
    78
    Likes Received:
    2
    Reputations:
    0
    Наткнулся на статью. Хэширование паролей, совет
    Не понимаю суть. Если угадают через форму, совет не сыграет роли. Это действительно может помочь, если базу нелегально сольют?
     
  2. mr.The

    mr.The Elder - Старейшина

    Joined:
    30 Apr 2007
    Messages:
    1,080
    Likes Received:
    456
    Reputations:
    38
    Да, паролей не будет в словарях и прийдётся брутить с нуля. Но если пароли вида 123456 то их всё-равно подберут.
    А вообще, советую почитать:http://mrthe.name/2009/08/kak-hranit-paroli-polzovatelej/
     
  3. -=lebed=-

    -=lebed=- хэшкрякер

    Joined:
    21 Jun 2006
    Messages:
    3,804
    Likes Received:
    1,960
    Reputations:
    594
    Если сольют базу вместе с солью, то смысл этой самой соли, только в замедлении скорости брута на большом списке хэшей и всё. Достаточно только знать как эта соль присоединяется к паролю (можно просто методом тыка пробовать, если изначально неизвестно как).
     
  4. @D_

    @D_ New Member

    Joined:
    29 Jul 2009
    Messages:
    15
    Likes Received:
    3
    Reputations:
    0
    соль нужна для сокрытия пароля. Даже если он в md5, вероятность коллизии или подбора по базе md5 хешей отпадает. Соответственно, получив базу или вытянув куки, удаленный взломщик не сможет восстановить пароль пользователя из подобного хеша.
    Несомненно, это не защищает от банального брута пасса через форму, однако защищает от восстановления пароля при получении кук или бд. Хотя если соли лежит в той же базе, все старания напрасны.
    Лично я для своих проектов храню солю в конфигах, не в базе. Пусть она одна и одинаковые пассы можно найти через базу, зато первичную соль не узнать, получив доступ только к базе.
     
  5. Gray_Wolf

    Gray_Wolf Active Member

    Joined:
    7 Mar 2009
    Messages:
    377
    Likes Received:
    135
    Reputations:
    10
    Опять-же использование нестандартного алгоритма присоединения соли заставит взломавшего искать или писать самому модуль для брута...
    чтонить типа Md5(md5(salt).salt.md5(pass)) да и скорость брута никогда не сравнится со скоростью брута простого MD5.

    @D_ существуют способы узнать соль если известен алгоритм хеширования.
    Т.е. если мы зарегены, мы знаем свой пасс если ещё знаем и алгоритм, то просто если изначальный алгоритм md5(salt.pass), то использую md5(pass.salt) и подставив вместо соли наш пасс, мы тупо брутим соль.

    А вот зная соль и зная что она одинаковая во всех хешах, мы можем брутить пасс со скоростью простого MD5.
     
    1 person likes this.
  6. @D_

    @D_ New Member

    Joined:
    29 Jul 2009
    Messages:
    15
    Likes Received:
    3
    Reputations:
    0
    несомненно, однако мы забываем, что соль для кук и для базы может быть разной =) Да и потом, чтобы брутить хеш, нужно всё таки получить доступ к базе.
     
  7. Gray_Wolf

    Gray_Wolf Active Member

    Joined:
    7 Mar 2009
    Messages:
    377
    Likes Received:
    135
    Reputations:
    10
    Ну для кук вообще использовать пасс ненужно, так что непонимаю о чём это вы.

    А по поводу доступа к базе, так тут и идёт обсуждение того как защитить пароли юзеров если до базы всётаки доберутся...

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

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