Способы хранения паролей

Вурдалак

Продвинутый новичок
В обоих случаях это рабочие варианты и достаточно надёжные для практического использования.
Самый лучший способ не выдать исходный пароль — это не знать его вообще. А учитывая, что для данной задачи исходный пароль знать и не нужно, то использовать шифрование вместо хеширования — это некомпетентность.
 

MiksIr

miksir@home:~$
А также говорилось, что если есть доступ к коду/серверу, то пофиг какой алгоритм шифрования, - хакер получит то, за чем пришёл
Получить код совсем не значит получить возможность менять код.
Получить возможность менять код совсем не значит, что это изменения продержаться долго и не будут перезатерты/обнаружены. А обнаружение закладок - не самый удачный способ заявить "посмотрите, вас хакнули".

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

Вурдалак

Продвинутый новичок
Но обратимое шифрование достаточно надёжный способ хранения информации, чтобы использовать этот метод. В т.ч. паролей - дело только в кривизне рук и извилин, т.е. в правильности применения метода.
Насколько мне известно, приблизительно можно оценить применимость: если шифрование (обратимое/необратимое - не важно) даёт среднее время дешифрации инфы пару-другую десятков лет, то можно считать метод достаточно надёжным.
«Обратимое шифрование» — это тавтология, потому что «необратимого» не существует.

Насколько мне известно, приблизительно можно оценить применимость: если шифрование (обратимое/необратимое - не важно) даёт среднее время дешифрации инфы пару-другую десятков лет, то можно считать метод достаточно надёжным.
Что это за соломенное чучело? Время дешифрования не имеет никакого отношения к разговору. Разговор идёт о том, что с шифрованием есть риск, что злоумышленник получит ключ и получит вообще все пароли. В случае с хешированием этого риска нет.

«Хранить то, что знать не нужно (а выдать — опасно)» это заведомо более проигрышная стратегия по сравнению с «не хранить то, что знать не нужно». Именно поэтому выбирать первую стратегию — это некомпетентность. Это увеличение рисков без каких-либо преимуществ.
 

WMix

герр M:)ller
Партнер клуба
@S.Chushkin, а ты даешь себе отчет в том, что зашифрованный пароль, это нескольно излишняя информация, которой может воспользоваться работник.
те hash это некий барьер который хоть и не гарантирует, но очень осложняет задачу пойска изначального пароля (bruteforce) даже с применением таблиц. при шифровании, это простая операция "расшифруй".
Не согласен. Думаю, вы ошибаетесь.
если нет пароля и автризация происходит через внешний сервис типа openID то проблемы "могут украсть" нет
 

MiksIr

miksir@home:~$
«Обратимое шифрование» — это тавтология, потому что «необратимого» не существует.
Я встречал случаи, когда необратимым шифрованием называли хеширование. Так что термин используется, но хеширование все же лучше.
 

Вурдалак

Продвинутый новичок
Я встречал случаи, когда необратимым шифрованием называли хеширование. Так что термин используется, но хеширование все же лучше.
Я тоже это встречал, но это просто безграмотность. Достаточно взглянуть на определение слова «шифрование».
 

fixxxer

К.О.
Партнер клуба
Я встречал случаи, когда необратимым шифрованием называли хеширование. Так что термин используется, но хеширование все же лучше.
Тоже слышал, но это вообще глупость, по такой логике "необратимым шифрованием" можно назвать функцию
PHP:
function encrypt($s) {
    return "";
}
Необратимо же :)
 

MiksIr

miksir@home:~$
Ты, наверное, и дорогу переходишь без светофоров где попало. А какой смысл в светофорах, если все-равно всегда есть вероятность, что собьют, даже если переходить по правилам.

получит ключ и получит вообще все пароли
Только в твоем случае. В нашем - нет.
получит хеши и подберёт пароли
Это возможно, да. См. ниже.
получит доступ к коду и получит все данные
получит доступ к серверу и получит всё, что захочет
Получит лишь те же хеши.
- подключится к промежуточному узлу и получит трафик
- подключится к кабелю и получит трафик
Узнай про TLS
- наконец, отловит админа и получит всё, что ему нужно. И без всякого напряга мозгов.
И... получит лишь те же хеши.


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

Redjik

Джедай-мастер
Омг, серьезно?
Любой, даже самый сложный хеш паролей тупо дает время.
Время, чтобы среагировать и оповестить юзеров, что пароли их утекли =)
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
@Redjik, а еще он остро повышает стоимость взлома, делая взлом через подбор невыгодным
 
  • Like
Реакции: WMix

MiksIr

miksir@home:~$
в первую очередь взломают пароли ключевых/важных юзеров
не факт, бывает, что ушедшая база паролей используется для получения доступа на других сервисах (предполагая, что пользователь использует один и тот же пароль).
И в этом случае не важно сколько им понадобится для подбора пароля, 5 секунд или 5 часов, они получат их, а остальные по возможности.
Правда не важно? Даже если речь идет о 3 часа vs 2 года и более? Т.е. вы даже не поинтересовались скоростями подбора? В интернете при желании можно найти даже в выражении через стоимость.
в этом и проблема хранения соли совместно с хешем - это облегчает взлом
Соль никогда не придумывалась для того, что бы усложнить прямой брутфорс одного пароля. А значит не может что-то облегчить.
И тут всё дело в балансе - что выгоднее, тупо увеличивать процессорное время или сосредоточится на защите алгоритмов/кода (фактически - серверов). Я убеждён, что второй подход более правильный.
У вас как с понятием слова "баланс"? По мне, так баланс - это равноценные вложения и туда и туда. А вас послушать, так "баланс" - это выбор одного из подходов и воинствующее категорическое отрицание других подходов.
 

Вурдалак

Продвинутый новичок
@S.Chushkin чувак, тебе не надоело словоблудием заниматься? Просто назови уже наконец преимущества шифрования паролей над хешированием, если ты считаешь это «альтернативой». Я вижу только одно применение — мошенничество. Использовать собственную базу в плохих целях. То есть помимо технических рисков, появляются ещё и репутационные. Лично у меня сильно снижается доверие к сайту, если на запрос «сбросить пароль» по факту мне присылают мой старый пароль на почту. Я тут начинаю подозревать, что я вверил свои личные данные каким-то идиотам.

Касаемо ключа, то у меня есть некоторый опыт взломов сайтов в прошлом, так обычно в половине случаев, если не чаще, код можно было прочитать через банальный LOAD_FILE(), т.е. если добрался до SQL injection, то и «сверхсекретный» ключ достать не проблема. А если разработчик действительно оказался тем идиотом, что просто шифрует пароли, то можно скомпрометировать всю базу за полчаса.
 

Вурдалак

Продвинутый новичок
Ну, если не читал ту тему, повторюсь: password_hash с параметрами как там описано, положит средний сервер уже при 2000 входов на сайт в час(!). Хорошо это или плохо - каждый решает сам. Я считаю, что плохо.
Это не отвечает на вопрос почему нужно рассматривать шифрование в качестве альтернативного варианта.
Ты просто берёшь какой-то крайний случай и говоришь: «смотрите, она выпила 6.5 литров воды за раз и умерла; вредна ли вода или нет — каждый решает сам. Я считаю, что вредна».
Используй менее ресурсоёмкий алгоритм хеширования. Причину использовать шифрование ты до сих пор не высосал из своего пальца. Продолжай.
 

Yaponchick

Новичок
https://blog.codinghorror.com/speed-hashing/
https://security.stackexchange.com/questions/4781/do-any-security-experts-recommend-bcrypt-for-password-storage/6415#6415

Собственно, я вот к чему, правда сейчас уже более "медленные" алгоритмы появились. Что это даёт? Да пусть воруют базу, пусть брутят 25 лет. Соль? Да, обязательно, но зачем её хешировать, проще тогда сразу генерировать соль из 32х символов )) ?

Фух, нашёл оригинал: https://docs.google.com/spreadsheets/d/1iwoMR5TBYAZ5eiSphkIQfIEfbrVvWW_tKwS4L1cYlaI/pubhtml?gid=0&single=true
И пост на эту тему: https://blog.codinghorror.com/hacker-hack-thyself/
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
А что с алгоритмами цифровой подписи? Какие алгоритмы сейчас считаются криптостойкими?
 
Последнее редактирование:
Сверху